Upluad控件多文件上传

分享 未结 1 112
jangojing
jangojing 4天前
悬赏:20飞吻
现象是如果上传10个文件,由于每个文件的进度是独立的,但是由于使用下方的代码,会导致10个进度条同时被更新,开发者应该能理解我说的意思
progress: function(n){
var percent = n + '%' //获取进度百分比
element.progress('demo', percent); //可配合 layui 进度条元素使用
}
所以需要修改的地方有3处
第一处,进度条本身,原来是demo,要改成demo-index的形式
lay-filter="demo-' + index + '"
第二处,progress调用的地方,这里需要配合修改upload。js源码,这里又改的是element查找对象的时候也要用demo-index的方式找’
progress: function (n, e, index) {
var percent = n + '%' //获取进度百分比
element.progress('demo-' + index, percent); //可配合 layui 进度条元素使用
}
第三处,就是upload.js的源码了,这里修改的是options.progress(percent,e,index) ,传入了第三个参数index。 建议开发者对源码进行修改。
xhr: function () {
var xhr = new XMLHttpRequest();
//监听上传进度
xhr.upload.addEventListener("progress", function (e) {
if (e.lengthComputable) {
var percent = Math.floor((e.loaded / e.total) * 100); //百分比
typeof options.progress === 'function' && options.progress(percent, e, index);
}
});
return xhr;
}
回帖