jq中文件 上传的方法

$(function () {
  var fileLen =""
  var upImageLen =""
  var fileUploadArr ={};
  var urlArr=[];
  var getDataList ={
     init:function(){
       this.addListenner();
             
     }
     addListenner:function(){
        var self = this;
        //附件上传
        $("#upload_file").on('change',function(){
                fileLen = $('.voice_file_upload').length;
                upImageLen = Array.from($(this)[0].files).length;
                if((fileLen + upImageLen) < 11){
                    var fileArr = Array.from($(this)[0].files);
                    count = 0;
                    $("#upload_file")[0].setAttribute('type','text');
                    self.testPic(fileArr,'30');//录音附件大小及格式处理
                }else if((fileLen + upImageLen) >= 11){ //超过10条弹框
                    $(".pic-num").text("最多只能上传10个附件!")
                    $(".upload-alert-box").show();
                    $("#upload_file")[0].setAttribute('type','file');
                    count = 0;
                }
         });
  
     }
     //附件上传
     fileUpload:function(formData,fileType){
            var self = this;
            var url = bpmUrl + "/workflow/attachment/uploadFile";
            $("body").mLoading();
            $.ajax({
                type:"POST",
                url: url,
                data:formData,
                processData:false,
                contentType: false,
                success: function(data) {
                    $("body").mLoading('hide');
                    $("#upload_file")[0].setAttribute('type','file');
                    $("#upload_img")[0].setAttribute('type','file')
                    $("#writingUploadFile")[0].setAttribute('type','file');
                    var responseData = JSON.parse(data);
                    if(fileType == '30'){ //点击录音附件返回的数据
                        fileUploadArr.fileLink =responseData.finalUrl
                        fileUploadArr.fileName = responseData.fileName
                        var size = responseData.fsize.replace(",",'')
                        fileUploadArr.fileSize = (size/1024 ).toFixed(2)
                        fileUploadArr.fileType = '30'
                        urlArr.push({fileLink:fileUploadArr.fileLink,fileName:fileUploadArr.fileName,fileType:fileUploadArr.fileType})
                        self.thumbNailFile(fileUploadArr);
                        self.thumbNailWritingFile(fileUploadArr);
                    }else if(fileType == '10'){ //写作图片上传
                        fileUploadArr.fileLink =responseData.finalUrl
                        fileUploadArr.fileName = responseData.fileName
                        fileUploadArr.fileSize = responseData.fsize
                        fileUploadArr.fileType = '10'
                        urlArr.push(fileUploadArr)
                        self.thumbNailWritingImg(fileUploadArr)
                    }
                },
                error: function(error) {
                    alert("请求错误");
                    $("body").mLoading('hide');
                    $("#upload_file")[0].setAttribute('type','file');
                    $("#upload_img")[0].setAttribute('type','file')
                    $("#writingUploadFile")[0].setAttribute('type','file');
                }
            })
        },
        // 口语录音附件上传
        thumbNailFile:function(responseData){ //录音附件
            let fileId = responseData.fileId?responseData.fileId:''
            var file_upload = '<div class="voice-box voice_file_upload recorder"><div class="left-box"><div class="file-text">'+responseData.fileName +
                '</div><div data-fileid="'+fileId+'" data-type="'+responseData.fileType+'" data-name="'+responseData.fileName+'" data-url="'+responseData.fileLink+'" data-size="'+responseData.fileSize+'MB'+'" class="file-url file-data">'+responseData.fileLink+
                '</div><div class="file-size">'+ responseData.fileSize+'MB'+'</div></div><div class="right-box">'+
                '<img class="del-icon" data-fileid="'+fileId+'" src='+ imgUrl +'/img/ic_delete.png></div></div>'
            $(".voice-file").append(file_upload);
            this.domChage()
        },


testPic:function(file,fileType){
            var self = this;
            if(file.length > 11){
                $(".upload-alert-box").show();
                $("#upload_file")[0].setAttribute('type','file');
                $("#upload_img")[0].setAttribute('type','file');
                $("#writingUploadFile")[0].setAttribute('type','file');
                return false
            }
            if(fileType == '30'){
                if(file.length == 1){
                    var fileSize = file[0].size / 1024 / 1024 < 20;
                    if(!fileSize){
                        alert('文件大小不能超过20MB');
                        $("#upload_file")[0].setAttribute('type','file');
                        $("#writingUploadFile")[0].setAttribute('type','file');
                        return false
                    }
                    var formData = new FormData();
                    formData.append('mFile', file[0])
                    self.fileUpload(formData,fileType)
                }else{
                    $.each(file,function(index,item){
                        var fileSize = item.size / 1024 / 1024 < 20;
                        if(!fileSize){
                            alert('文件大小不能超过20MB');
                            $("#upload_file")[0].setAttribute('type','file');
                            $("#writingUploadFile")[0].setAttribute('type','file');
                            return false
                        }
                    });
                    self.moreChage(file,fileType);
                }
            }
            if(fileType == '20'){
                if(file.length == 1){
                    var fileSize = file[0].size / 1024 / 1024 < 20;
                    if(!fileSize){
                        alert('录音大小不能超过20MB');
                        return false
                    }
                    var formData = new FormData();
                    formData.append('mFile', file[0])
                    self.fileUpload(formData,fileType)
                }else{
                    $.each(file,function(index,item){
                        var fileSize = item.size / 1024 / 1024 < 20;
                        if(!fileSize){
                            alert('录音大小不能超过20MB');
                            return false
                        }
                    });
                    self.moreChage(file,fileType);
                }
            }
            if(fileType == '10'){
                if(file.length == 1){
                    var fileSize = file[0].size / 1024 / 1024 < 20;
                    if(!fileSize){
                        alert('图片大小不能超过20MB');
                        $("#upload_img")[0].setAttribute('type','file');
                        return false
                    }
                    var formData = new FormData();
                    formData.append('mFile', file[0])
                    self.fileUpload(formData,fileType)
                }else{
                    $.each(file,function(index,item){
                        var fileSize = item.size / 1024 / 1024 < 20;
                        if(!fileSize){
                            alert('图片大小不能超过20MB');
                            $("#upload_img")[0].setAttribute('type','file');
                            return false
                        }
                    });
                    self.moreChage(file,fileType);
                }
            }
        },
moreChage:function(fileArr,fileType){
            var self = this;
            $.each(fileArr,function(index,item){
                (function(j){
                    //显示图片 上传文件
                    var formData = new FormData();
                    formData.append('mFile',j);
                    self.fileUpload(formData,fileType);
                })(item)
            });
        },

    
  }
  getDataList.init()
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值