elementui el-upload一次请求上传多个文件的实现
在使用element中的el-upload是时,当我们要上传多个文件时,el-upload内部会多次调用this.$refs.upload.submit();方法,从而实现多个文件上传,但是有时候,我们希望,当上传多个文件的时候,只给后端发送一次请求,这样就需要先把el-upload的自动上传改为手动上传:auto-upload=“false”
<el-upload ref="upload" :limit="10" accept=".jpg,.gif,.png,.jpeg,.txt,.pdf,.doc,.docx,.xls,.xlsx" name="files" :multiple="true" :action="baseURL" :headers="myToken" <!-- 请求头设置 --> :on-change="handleFileChange" :before-remove="handleFileRemove" :auto-upload="false" :file-list="upload.fileList" > <el-button slot="trigger" size="small" type="primary">选取文件</el-button> </el-upload> <el-button type="primary" @click="submitFileForm">确 定</el-button>
data(){ return { upload: { fileList: [], fileName: [] }, } }
通过FormData创建一个数据对象,并且将上传的文件append到对象中
// 上传发生变化钩子 handleFileChange(file, fileList) { this.upload.fileList = fileList; }, // 删除之前钩子 handleFileRemove(file, fileList) { this.upload.fileList = fileList; }, // 提交上传文件 submitFileForm() { // 创建新的数据对象 let formData = new FormData(); // 将上传的文件放到数据对象中 this.upload.fileList.forEach(file => { formData.append('file', file.raw); this.upload.fileName.push(file.name); }); console.log("提交前",formData.getAll('file')); // 文件名 formData.append('fileName', this.upload.fileName); // 自定义上传 this.$api.uploadFile(formData).then(response => { console.log(response); // if(response.code == 200){ // this.$refs.upload.clearFiles(); // this.msgSuccess('上传成功!'); // }else{ // this.$message.error(response.msg); // } }) .catch(error => { this.$message.error('上传失败!'); }); },
使用自定义上传的接口,而不是使用*this.$refs.upload.submit();*方法
注意上传文件接口的请求头中headers中的’Content-Type’要为’multipart/form-data’
// 封装的上传请求 uploadFile(params) { return axios.post(`/shiro/swpe/permission/uploadOrStartProceBPS`, params, { headers: { 'Content-Type': 'multipart/form-data', token: window.localStorage.getItem('token')}}) },
到此这篇关于elementui el-upload一次请求上传多个文件的实现的文章就介绍到这了,更多相关elementui el-upload请求多文件上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vue3中reactive数据被重新赋值后无法双向绑定的解决
这篇文章主要介绍了vue3中reactive数据被重新赋值后无法双向绑定的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-05-05Vue.sync修饰符与$emit(update:xxx)详解
这篇文章主要介绍了Vue.sync修饰符与$emit(update:xxx),实现思路非常简单,文章介绍了.sync修饰符的作用和使用.sync修饰符的写法,实现代码简单易懂对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-11-11
最新评论