/** layui-v2.5.6 MIT License By https://www.layui.com */ ;layui.define("layer",function(e){"use strict"; var t=layui.$, // 使用 layui 的 jQuery 封装 i=layui.layer, // 引入 layer 模块 n=layui.hint(), // 提示模块 o=layui.device(), // 设备模块 a={config:{}, // 配置项 set:function(e){var i=this; return i.config=t.extend({},i.config,e),i}, // 设置配置 on:function(e,t){return layui.onevent.call(this,r,e,t)}}, // 监听事件 l=function(){var e=this; return{upload:function(t){e.upload.call(e,t)}, // 上传方法 reload:function(t){e.reload.call(e,t)}, // 重新加载方法 config:e.config}}, // 返回配置 r="upload", // 模块名 u="layui-upload-file", // 文件上传的类名 c="layui-upload-form", // 上传表单的类名 f="layui-upload-iframe", // iframe 类名 s="layui-upload-choose", // 选择文件的类名 p=function(e){var i=this; i.config=t.extend({},i.config,a.config,e),i.render()}; // 构造函数,初始化配置 // 定义上传组件的原型 p.prototype.config={ accept:"images", // 默认接受的文件类型是图片 exts:"", // 文件扩展名 auto:!0, // 是否自动上传 bindAction:"", // 绑定的上传按钮 url:"", // 上传的服务器地址 field:"file", // 上传的字段名称 acceptMime:"", // 接受的 MIME 类型 method:"post", // 请求方法 data:{}, // 附加的表单数据 drag:!0, // 是否支持拖拽上传 size:0, // 文件大小限制 number:0, // 上传文件数量限制 multiple:!1 // 是否支持多文件上传 }; // 渲染上传控件 p.prototype.render=function(e){ var i=this,e=i.config; e.elem=t(e.elem), // 获取上传控件的元素 e.bindAction=t(e.bindAction), // 绑定上传按钮 i.file(), // 初始化文件上传功能 i.events() // 初始化事件 }; // 初始化文件上传功能 p.prototype.file=function(){ var e=this,i=e.config, n=e.elemFile=t(['"].join("")), a=i.elem.next(); // 获取上传元素的下一个兄弟元素 (a.hasClass(u)||a.hasClass(c))&&a.remove(), // 删除已存在的文件上传组件 o.ie&&o.ie<10&&i.elem.wrap('
'), // IE 10 以下需要包裹一个 div e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n), // 如果是文件类型的 input,则直接使用 o.ie&&o.ie<10&&e.initIE(); // 如果是 IE 10 以下,进行额外的初始化处理 }; // 初始化 IE 特定的处理 p.prototype.initIE=function(){ var e=this,i=e.config, n=t(''), o=t(['"].join("")); t("#"+f)[0]||t("body").append(n), // 添加 iframe i.elem.next().hasClass(c)||(e.elemFile.wrap(o),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}())); }; // 显示错误信息 p.prototype.msg=function(e){ return i.msg(e,{icon:2,shift:6}); }; // 检查元素是否为文件类型 p.prototype.isFile=function(){ var e=this.config.elem[0]; if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type; }; // 文件预览 p.prototype.preview=function(e){ var t=this; window.FileReader&&layui.each(t.chooseFiles,function(t,i){ var n=new FileReader; n.readAsDataURL(i), n.onload=function(){e&&e(t,i,this.result)}} ); }; // 文件上传方法 p.prototype.upload=function(e,i){ var n,a=this,l=a.config,r=a.elemFile[0], u=function(){ var i=0,n=0,o=e||a.files||a.chooseFiles||r.files,u=function(){ l.multiple&&i+n===a.fileLength&&"function"==typeof l.allDone&&l.allDone({total:a.fileLength,successful:i,aborted:n}); }; layui.each(o,function(e,o){var r=new FormData;r.append(l.field,o),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)});var c={url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,a.msg("请求上传接口出现异常"),m(e),u()}}; "function"==typeof l.progress&&(c.xhr=function(){var e=t.ajaxSettings.xhr();return e.upload.addEventListener("progress",function(e){if(e.lengthComputable){var t=Math.floor(e.loaded/e.total*100);l.progress(t,l.item[0],e)}}),e}),t.ajax(c)})}; c=function(){ var e=t("#"+f); a.elemFile.parent().submit(), clearInterval(p.timer), p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){a.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30) }; } }; // 上传成功后的处理 d=function(e,t){ // 调用文件上传成功后的处理 // 处理成功后的回调逻辑 }; // 其他相关代码 // ...