webuploader-demo.min.js 5.1 KB

1
  1. jQuery(function(){function e(e){var a=o('<li id="'+e.id+'"><p class="title">'+e.name+'</p><p class="imgWrap"></p><p class="progress"><span></span></p></li>'),s=o('<div class="file-panel"><span class="cancel">删除</span><span class="rotateRight">向右旋转</span><span class="rotateLeft">向左旋转</span></div>').appendTo(a),i=a.find("p.progress span"),t=a.find("p.imgWrap"),r=o('<p class="error"></p>'),d=function(e){switch(e){case"exceed_size":text="文件大小超出";break;case"interrupt":text="上传暂停";break;default:text="上传失败,请重试"}r.text(text).appendTo(a)};"invalid"===e.getStatus()?d(e.statusText):(t.text("预览中"),n.makeThumb(e,function(e,a){if(e)return void t.text("不能预览");var s=o('<img src="'+a+'">');t.empty().append(s)},v,b),w[e.id]=[e.size,0],e.rotation=0),e.on("statuschange",function(t,n){"progress"===n?i.hide().width(0):"queued"===n&&(a.off("mouseenter mouseleave"),s.remove()),"error"===t||"invalid"===t?(console.log(e.statusText),d(e.statusText),w[e.id][1]=1):"interrupt"===t?d("interrupt"):"queued"===t?w[e.id][1]=0:"progress"===t?(r.remove(),i.css("display","block")):"complete"===t&&a.append('<span class="success"></span>'),a.removeClass("state-"+n).addClass("state-"+t)}),a.on("mouseenter",function(){s.stop().animate({height:30})}),a.on("mouseleave",function(){s.stop().animate({height:0})}),s.on("click","span",function(){var a,s=o(this).index();switch(s){case 0:return void n.removeFile(e);case 1:e.rotation+=90;break;case 2:e.rotation-=90}x?(a="rotate("+e.rotation+"deg)",t.css({"-webkit-transform":a,"-mos-transform":a,"-o-transform":a,transform:a})):t.css("filter","progid:DXImageTransform.Microsoft.BasicImage(rotation="+~~(e.rotation/90%4+4)%4+")")}),a.appendTo(l)}function a(e){var a=o("#"+e.id);delete w[e.id],s(),a.off().find(".file-panel").off().end().remove()}function s(){var e,a=0,s=0,t=f.children();o.each(w,function(e,i){s+=i[0],a+=i[0]*i[1]}),e=s?a/s:0,t.eq(0).text(Math.round(100*e)+"%"),t.eq(1).css("width",Math.round(100*e)+"%"),i()}function i(){var e,a="";"ready"===k?a="选中"+m+"张图片,共"+WebUploader.formatSize(h)+"。":"confirm"===k?(e=n.getStats(),e.uploadFailNum&&(a="已成功上传"+e.successNum+"张照片至XX相册,"+e.uploadFailNum+'张照片上传失败,<a class="retry" href="#">重新上传</a>失败图片或<a class="ignore" href="#">忽略</a>')):(e=n.getStats(),a="共"+m+"张("+WebUploader.formatSize(h)+"),已上传"+e.successNum+"张",e.uploadFailNum&&(a+=",失败"+e.uploadFailNum+"张")),p.html(a)}function t(e){var a;if(e!==k){switch(c.removeClass("state-"+k),c.addClass("state-"+e),k=e){case"pedding":u.removeClass("element-invisible"),l.parent().removeClass("filled"),l.hide(),d.addClass("element-invisible"),n.refresh();break;case"ready":u.addClass("element-invisible"),o("#filePicker2").removeClass("element-invisible"),l.parent().addClass("filled"),l.show(),d.removeClass("element-invisible"),n.refresh();break;case"uploading":o("#filePicker2").addClass("element-invisible"),f.show(),c.text("暂停上传");break;case"paused":f.show(),c.text("继续上传");break;case"confirm":if(f.hide(),c.text("开始上传").addClass("disabled"),a=n.getStats(),a.successNum&&!a.uploadFailNum)return void t("finish");break;case"finish":a=n.getStats(),a.successNum?alert("上传成功"):(k="done",location.reload())}i()}}var n,o=jQuery,r=o("#uploader"),l=o('<ul class="filelist"></ul>').appendTo(r.find(".queueList")),d=r.find(".statusBar"),p=d.find(".info"),c=r.find(".uploadBtn"),u=r.find(".placeholder"),f=d.find(".progress").hide(),m=0,h=0,g=window.devicePixelRatio||1,v=110*g,b=110*g,k="pedding",w={},x=function(){var e=document.createElement("p").style,a="transition"in e||"WebkitTransition"in e||"MozTransition"in e||"msTransition"in e||"OTransition"in e;return e=null,a}();if(!WebUploader.Uploader.support())throw alert("Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器"),new Error("WebUploader does not support the browser you are using.");n=WebUploader.create({pick:{id:"#filePicker",label:"点击选择图片"},dnd:"#uploader .queueList",paste:document.body,accept:{title:"Images",extensions:"gif,jpg,jpeg,bmp,png",mimeTypes:"image/*"},swf:BASE_URL+"/Uploader.swf",disableGlobalDnd:!0,chunked:!0,server:"http://2betop.net/fileupload.php",fileNumLimit:300,fileSizeLimit:5242880,fileSingleSizeLimit:1048576}),n.addButton({id:"#filePicker2",label:"继续添加"}),n.onUploadProgress=function(e,a){var i=o("#"+e.id),t=i.find(".progress span");t.css("width",100*a+"%"),w[e.id][1]=a,s()},n.onFileQueued=function(a){m++,h+=a.size,1===m&&(u.addClass("element-invisible"),d.show()),e(a),t("ready"),s()},n.onFileDequeued=function(e){m--,h-=e.size,m||t("pedding"),a(e),s()},n.on("all",function(e){switch(e){case"uploadFinished":t("confirm");break;case"startUpload":t("uploading");break;case"stopUpload":t("paused")}}),n.onError=function(e){alert("Eroor: "+e)},c.on("click",function(){return o(this).hasClass("disabled")?!1:void("ready"===k?n.upload():"paused"===k?n.upload():"uploading"===k&&n.stop())}),p.on("click",".retry",function(){n.retry()}),p.on("click",".ignore",function(){alert("todo")}),c.addClass("state-"+k),s()});