1. 程式人生 > 實用技巧 >使用elementui批量上傳檔案

使用elementui批量上傳檔案

1、此方法是先選取檔案,後直接一次性上傳檔案,只會傳送一次請求

 <el-form-item label="上傳附件">
            <el-upload
              :file-list="fileListArr"  //選擇的上傳檔案列表資料
              action="scfj"             //上傳地址,可以直接寫上傳地址比如www.baidu.com;我這裡的地址是需要攜帶其他引數的所以這裡隨便填寫,因為這是必填引數
              ref="scfj"
              accept=".xls, .xlsx, .doc, .docx, .rar"  //可上傳檔案的型別
:before-upload="beforeUploadFj" //此方法再上傳之前對檔案再次校驗 :on-exceed="handleExceedFj" //此方法用來對上傳檔案超過個數進行限制 :on-remove="handleRemoveFj" //此方法刪除上傳檔案時觸發 multiple //是否可以上傳多個檔案 :limit
="10" //上傳檔案的個數限制 :auto-upload="false" //關閉自動上傳;如開啟自動上傳,即選擇之後就上傳 :on-change="onChangeFj" //此方法選擇檔案時候觸發 > <el-button slot="trigger" size="small" type="primary" >選取檔案</
el-button > <el-button style="margin-left: 10px;" size="small" type="success" @click="uploadFj" //呼叫上傳介面進行上傳 >上傳附件</el-button > </el-upload> </el-form-item>
//對上傳檔案再次校驗
beforeUploadFj(file) { let zhzxFile
= file.name.substring(file.name.lastIndexOf(".") + 1); const extension = zhzxFile === "xls"; const extension2 = zhzxFile === "xlsx"; const extension3 = zhzxFile === "doc"; const extension4 = zhzxFile === "docx"; const extension5 = zhzxFile === "rar"; // const isLt2M = file.size / 1024 / 1024 < 10 根據需求是否需要對上傳檔案大小進行限制 if ( !extension && !extension2 && !extension3 && !extension4 && !extension5 ) { this.$message({ message: "上傳檔案只能是 xls、xlsx、doc、docx、rar格式!", type: "warning", }); }
//if(!isLt2M){ //this.$message({ //message:'上傳檔案大小不能超過10MB!', //type:'warning' //}); //} //returnextension||extension2&&isLt2M
return extension || extension2 || extension3 || extension4 || extension5;
    },



//對上傳檔案超過個數進行限制
handleExceedFj(files,fileList){ this.$message.warning( `當前限制選擇10個檔案,本次選擇了${files.length}個檔案,共選擇了${ files.length+fileList.length }個檔案` ); }, //刪除事件,需要根據具體業務分析,即刪除時候從陣列中去除選中的檔案 handleRemoveFj(file,fileList){ console.log(file.fileList) //this.fileListArr=fileList; //letdelArr=this.saveScfjArr.filter((item)=>{ // returnitem!=file.name; // });
// this.saveScfjArr=delArr;
//this.gwModleObj.scfj=this.saveScfjArr; }, //選擇檔案時候觸發 需根據需求具體分析 onChangeFj(file,fileList){ console.log(file.fileList) //this.fileListArr=fileList; //this.gwModleObj.scfj=fileList; //this.$refs.gwModleObj.validateField("scfj"); //this.saveSuccessId=1; },

//上傳介面,進行上傳
uploadFj(value){ this.$refs.scfj.submit(); letformData=newFormData(); //所需引數 this.fileListArr.forEach((item)=>{ formData.append("file",item.raw); }); //介面
getUploadFjApi(formData).then((res)=>{ if(res.data.code==200){ this.$message.success("附件上傳成功!"); this.saveScfjArr=res.data.data; this.saveSuccessId=""; this.$refs.scfj.clearFiles(); //清楚上傳檔案 } }); },