思路:将lrz压缩后的结果用数组先装起来,然后来个定时器,循环判断lrz是否已经异步压缩完图片,及判断数组的长度是否和上传的图片个数一致,一致在用ajax批量上传
var baseArray =[];
var fileOriginNameArray =[];
for(var i=0;i<fileList.length;i++){
if(fileList[i]!=null){
lrz(fileList[i], {width: 800})
.then(function (rst) {
baseArray.push(rst.base64);
fileOriginNameArray.push(rst.origin.name);
})
.catch(function (err) {
// 处理失败会执行
})
.always(function () {
// 不管是成功失败,都会执行
});
}
}
var timer = setInterval(function(){ //开启定时器
if(baseArray.length>0&&baseArray.length==fileNumber){
formData.append('base', baseArray.join("&"));
formData.append('fileOriginName', fileOriginNameArray.join("&"));
console.log(baseArray);
if(uploadUrl!="#"&&uploadUrl!=""){
uploadTools.disableFileUpload(opt);//禁用文件上传
uploadTools.disableCleanFile(opt);//禁用清除文件
$.ajax({
type:"post",
url:uploadUrl,
data:formData,
processData : false,
contentType : false,
success:function(data){
setTimeout(function(){opt.onUpload(opt,data)},500);
if(!opt.showSummerProgress&&opt.isAutoClean){
setTimeout(function () {uploadEvent.cleanFileEvent(opt);},2000) ;
}
},
error:function(e){
}
});
}else{
uploadTools.disableFileUpload(opt);//禁用文件上传
uploadTools.disableCleanFile(opt);//禁用清除文件
}
clearInterval(timer); //清除定时器
}
},300);
网友评论