From bdd590f4dcf2b399226802e4df456112defd432a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= Date: Mon, 1 Feb 2021 12:17:48 +0800 Subject: [PATCH] Update upload.js --- app/admin/view/api/upload.js | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/app/admin/view/api/upload.js b/app/admin/view/api/upload.js index 9d3a794c0..4c202c475 100644 --- a/app/admin/view/api/upload.js +++ b/app/admin/view/api/upload.js @@ -14,14 +14,15 @@ define(['md5'], function (SparkMD5, allowMime) { /*! 初始化上传组件 */ option.uploader = layui.upload.render({ auto: false, elem: element, accept: 'file', multiple: option.multiple, - exts: option.exts.join('|'), acceptMime: option.mimes.join(','), choose: function (object, index) { - for (index in (option.files = object.pushFile())) { - if (option.size > 0 && option.files[index].size > option.size) { + exts: option.exts.join('|'), acceptMime: option.mimes.join(','), choose: function (object) { + option.element.triggerHandler('upload.choose', option.files = object.pushFile()); + option.uploader.config.elem.next().val(''), layui.each(option.files, function (index, file) { + if (option.size > 0 && file.size > option.size) { return delete option.files[index], $.msg.tips('文件大小超出上传限制!'); } option.load = option.hload || $.msg.loading('上传进度 0%'); - option.count.total++, option.files[index].index = index, option.cache[index] = option.files[index], delete option.files[index]; - md5file(option.cache[index]).then(function (file) { + option.count.total++, file.index = index, option.cache[index] = file, delete option.files[index]; + md5file(file).then(function (file) { option.element.triggerHandler('upload.hash', file); jQuery.ajax("{:url('admin/api.upload/state')}", { data: {xkey: file.xkey, uptype: option.uptype, safe: option.safe, name: file.name}, method: 'post', success: function (ret) { @@ -40,8 +41,8 @@ define(['md5'], function (SparkMD5, allowMime) { option.uploader.config.data['success_action_status'] = 200; option.uploader.config.data['Content-Disposition'] = 'inline;filename=' + encodeURIComponent(file.name); } else if (ret.data.uptype === 'txcos') { - option.uploader.config.data['policy'] = ret.data.policy; option.uploader.config.data['q-ak'] = ret.data['q-ak']; + option.uploader.config.data['policy'] = ret.data.policy; option.uploader.config.data['q-key-time'] = ret.data['q-key-time']; option.uploader.config.data['q-signature'] = ret.data['q-signature']; option.uploader.config.data['q-sign-algorithm'] = ret.data['q-sign-algorithm']; @@ -57,15 +58,24 @@ define(['md5'], function (SparkMD5, allowMime) { } }); }); - } + }); }, progress: function (number) { - option.element.triggerHandler('upload.progress', {event: arguments[2], file: arguments[3]}); $('[data-upload-progress]').html(number + '%'); + option.element.triggerHandler('upload.progress', {event: arguments[2], file: arguments[3]}); }, done: function (ret, index) { option.element.triggerHandler('upload.done', {file: option.cache[index], data: ret}); - if (++option.count.uploaded >= option.count.total && !option.hload) layer.close(option.load); - if (typeof ret.code === 'number' && parseInt(ret.code) === 0) return $.msg.tips(ret.info || '文件上传失败!'); - if (typeof option.cache[index].xurl !== 'string') return $.msg.tips('无效的文件对象!'); + if (++option.count.uploaded >= option.count.total) { + option.element.triggerHandler('upload.complete', {}); + option.element.html(option.element.data('html')); + option.hload || $.msg.close(option.load); + option.uploader.reload(); + } + if (typeof ret.code === 'number' && parseInt(ret.code) === 0) { + return $.msg.tips(ret.info || '文件上传失败!'); + } + if (typeof option.cache[index].xurl !== 'string') { + return $.msg.tips('无效的文件对象!'); + } if (typeof ret.uploaded === 'undefined' && typeof option.cache[index].xurl === 'string') { ret = {uploaded: true, url: option.cache[index].xurl}; } @@ -78,10 +88,6 @@ define(['md5'], function (SparkMD5, allowMime) { } else { $.msg.tips(ret.info || ret.error.message || '文件上传出错!'); } - }, allDone: function () { - option.element.triggerHandler('upload.complete', {}); - option.element.html(option.element.data('html')); - option.hload || $.msg.close(option.load); } }); };