/* * @tanqilin 2016 07 05 * 百度上传插件 * * UploaderPick:"#", //绑定按钮id * UploaderUrl:"", //百度插件地址 * UploaderServer:"", //上传api * UploaderMax:5 //现在最大上传个数 * UploadHiddenField:"" //隐藏域name */ var uploadlist = ""; var uploadObj = []; function upload(obj){ this.upobj = { UploaderUrl : obj.UploaderUrl ? obj.UploaderUrl : "https://cdn.bootcss.com/webuploader/0.1.1/webuploader.min.js", UploaderServer : obj.UploaderServer ? obj.UploaderServer :"/api/attachment/webupload?elementid=&watermark=" + obj.UploadWatermark + "&_time=" + Math.random() , UploaderPick : obj.UploaderPick ? obj.UploaderPick : "#upload01" , UploaderMax : obj.UploaderMax ? obj.UploaderMax : 100, UploaderSingle : obj.UploaderSingle ? obj.UploaderSingle : false, UploadHiddenField : obj.UploadHiddenField ? obj.UploadHiddenField : "field[]", UploadWatermark : obj.UploadWatermark ? obj.UploadWatermark : "" }, this.loadJS = function(url, callback){ var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); script.src = url; var done = false; script.onload = script.onreadystatechange = function() { if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { done = true; callback(); script.onload = script.onreadystatechange = null; head.removeChild(script); } }; head.appendChild(script); } var _this=this; this.attachEventload(function(){ _this.loadCom(); }); } upload.prototype.attachEventload = function(argument){ // 判断页面是否加载完毕 if (window.attachEvent) { window.attachEvent("onload",argument); } else if (window.addEventListener) { window.addEventListener("load",argument, false); } }; upload.prototype.loadCom = function() { var _this=this; $("body").append("") if(typeof WebUploader != 'undefined'){ _this.upLoader(); }else{ this.loadJS(this.upobj.UploaderUrl + "?t=" + Math.random() ,function(){ _this.upLoader(); }); } }; upload.prototype.upLoader=function(){ var _this = this; var imgLinst = 0; var imgbuthtml = ""; // 百度上传插件初始化 var uploader = WebUploader.create({ // swf文件路径 swf:'/base/plugins/imguploader/uploader.swf', // 文件接收服务端。 server: this.upobj.UploaderServer, // 选择文件的按钮。可选。 // 内部根据当前运行是创建,可能是input元素,也可能是flash. pick: this.upobj.UploaderPick, //现在最大上传数 fileNumLimit: _this.upobj.UploaderMax, //fileSizeLimit: 500 * 1024 * 1024, //fileSingleSizeLimit: 10 * 1024 * 1024, extensions:'jpg|jpeg|gif|png|bmp', // 是否选择就上传 auto: true, accept: { title: 'Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/*' } // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! //resize: false }); // 传递参数 /* uploader.option("formData", { // _token : "$token", elementid: "", watermark: this.upobj.UploadWatermark, _time: Math.random() });*/ // 判断格式 uploader.on("error",function(type){ //仅支持JPG、GIF、PNG、JPEG、BMP格式, if(type=='F_EXCEED_SIZE'||type=='Q_EXCEED_SIZE_LIMIT'){ layer.msg("上传的图片太大", {icon: 2}); return false; }else if(type=="Q_TYPE_DENIED"){ layer.msg("请上传JPG、GIF、PNG、JPEG、BMP格式", {icon: 2}); return false; }else if(type=="Q_EXCEED_NUM_LIMIT"){ layer.msg("超过图片最大上传数量", {icon: 2}); return false; }else { layer.msg("服务器繁忙请稍候再试", {icon: 2}); return false; } }); // 上传进度 uploader.on("uploadProgress",function(file,percentage){ var $li=$("#rt_"+file.source.ruid).parent().parent().parent().find("li[data-uploaderId='"+file.id+"']"); $li.find("small").show().html("正在上传文件"); $li.find(".rate").show().find("span").css({"width":percentage*100+"%"}); if(percentage==1){ $li.find(".rate").hide(); $li.find("small").show().html("正在保存数据"); } }); // 生成预览图 uploader.on("fileQueued",function(file,percentage){ var butThis = _this.upobj, file = file; imgLinst ++; var but =$("#rt_"+file.source.ruid).parents('form').find("input[type='submit']"); var upload_num = 0; if(but.attr('data-upload_num')){ upload_num = parseInt(but.attr('data-upload_num')); } but.attr('data-upload_num',upload_num+1); if(but.val() != "正在上传文件..." || but.val() == ""){ uploadlist = but.val() == "" ? "提交" : but.val(); } but.val("正在上传文件..."); but.attr("disabled","true"); uploader.makeThumb( file, function( error, src ) { if ( error ) { layer.msg("图片不能预览", {icon: 2}); return; } var $li2 = '
\
等待上传文件
\上传失败
\'+file.name+'
\ 等待上传文件\\
等待上传文件
\上传失败
\