使用elementui批量上傳檔案
阿新 • • 發佈:2020-12-21
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>
//對上傳檔案再次校驗//if(!isLt2M){ //this.$message({ //message:'上傳檔案大小不能超過10MB!', //type:'warning' //}); //} //returnextension||extension2&&isLt2M
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", }); }
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(); //清楚上傳檔案 } }); },