You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
5.1 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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()});