zoukankan      html  css  js  c++  java
  • HTML5预览图片、异步上传文件

    注意啦:本文的代码都是以JQuery为示例,jq_开头的变量都是jq对象。

    在HTML5中,我们可以在图片上传之前对图片进行预览,就像下面这么做

    1 jq_upload_file.change(function(){
    2 jq_img.attr("src",window.URL.createObjectURL(this.files.item(0)));
    3 jq_div.css("backgroundImage","url("+window.URL.createObjectURL(this.files.item(0))+")");
    4 });//end change

    那么异步上传文件,就只需要利用HTML5中的FormData,也就是这样:

     1 $.extend({
     2 AjaxUploadFile:function(url,formData,success,failure){
     3 var oReq = new XMLHttpRequest();
     4 oReq.open( "POST", url , true );
     5 oReq.onload = function(oEvent) {
     6 if (oReq.status == 200)
     7 {
     8 if(typeof success=="function") success(oReq);
     9 }
    10 else
    11 {
    12 if(typeof failure=="function") failure(oReg);
    13 }
    14 };
    15 oReq.send(formData);
    16 }
    17 });


    调用:

     1 var form=new FormData();
     2 form.append("pic",jq_upload_file.get(0).files[0]);
     3 //关于这里,其他文章有提到,可以直接传个DOM节点进去,即form.append("pic",jq_upload_file.get(0))
     4 //另外,对于FormData可以将整个表单form的节点传入,形成一个完整的FormData,即var form=new FormData(jq_form.get(0))
     5 $.AjaxUploadFile(
     6 "上传的URL",
     7 form,
     8 function(oReq){
     9 //处理oReq.responseText
    10 }
    11 );

    当然,上传之前,可能需要先验证一下文件大小、类型等等:

     1 $.extend({
     2 CheckUploadFile:function(jq_input_file){
     3 if(jq_input_file.get(0).files.item(0).size>300*1024)
     4 {
     5 return "文件大于300KB,无法上传";
     6 }
     7 var allow_pic=["jpg","jpeg","png","gif"];
     8 var flag=false;
     9 for(var i in allow_pic)
    10 {
    11 if(jq_input_file.get(0).files.item(0).type.indexOf(allow_pic[i])!=-1)
    12 {
    13 flag=true;
    14 break;
    15 }
    16 }
    17 return flag?"":"指定的文件格式无法上传";
    18 }
    19 });
  • 相关阅读:
    算法总结--排序(快排未写)
    关于我,至目前的总结与展望
    二 python之数据类型和字符编码
    三 python之文件处理
    一 python编程基础
    markdown语法
    规模-复杂世界的简单法则---熵
    块级元素display:inline-block 在IE6 IE7无效
    CSS3 文本超出后显示省略号...
    让nodejs在iis上运行
  • 原文地址:https://www.cnblogs.com/ddcoder/p/4982971.html
Copyright © 2011-2022 走看看