function upload(obj,callback,url){ //obj 元素 callback回调方法,url 请求的url var maxLargeSize = 209715200;//200M var num=0; try{ var url=newUrl; var $this=$(obj); var file=$($this).find(":file"); var accept="application/vnd.ms-excel";//设置 可以选择什么文件 if($(file).length<1){ file=$("<input type='file' class='click f-file ' style='display: none'/>"); if(accept){ $(file).attr("accept",accept); } $(file).on("click",function(event){ event.stopPropagation(); }); $($this).append(file); $(file).on("change",function(e){ var f = e.target.files; if(f[0].size > maxLargeSize){ $(obj).append('<div class="upload-cover"><p>请上传200M以内的文件</p><div class="s-transition upload-cover-up"></div><div class="s-transition upload-cover-down"></div></div>'); return; } /* $(obj).append('<div class="upload-cover"><p>0%</p><div class="s-transition upload-cover-up"></div><div class="s-transition upload-cover-down"></div></div>');*/ if(f[0]){ if(f[0].type.indexOf("image")>-1){ var reader = new FileReader(); reader.onload=function(){ $(obj).find("img").attr("src",this.result); }; reader.readAsDataURL(f[0]); } } var form =$('<form method="post" enctype="multipart/form-data" action="'+url+'"></form>').appendTo("body"); $(form).append($(file).attr("name","uploadFile")); var onprogress= function (evt){ var loaded = evt.loaded; //已经上传大小情况 var tot = evt.total; //附件总大小 var per = Math.floor(100*loaded/tot); //已经上传的百分比 per=Math.min(99,per); $(obj).find(".upload-cover p").html(per+"%"); $(obj).find(".upload-cover .upload-cover-up").css({ height:(100-per)+"%" }); $(obj).find(".upload-cover .upload-cover-down").css({ height:per+"%" }); $("#son").html( per +"%" ); $("#son").css("width" , per +"%"); }; $(form).ajaxSubmit({ success:function(data){ }, xhr: function(){ var xhr = $.ajaxSettings.xhr(); if(onprogress && xhr.upload) { xhr.upload.addEventListener("progress" , onprogress, false); return xhr; } }, complete: function (XHR, TS) { XHR = null; // $(obj).find(".upload-cover").remove(); } }); }); } }catch(e){ console.info(e); } return file.click(); }
调用
$(".f-uploadExcel").on("click",function(event){ upload(this,function(obj,msg){},uploadUrl); });