关于lrz压缩插件批量上传图片的问题

思路:将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);   
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容