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请求多文件上传内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vue使用 vue-socket.io三种方式及踩坑实例解析
这篇文章主要为大家介绍了vue使用 vue-socket.io三种方式及踩坑实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-09-09el-table表头根据内容自适应完美解决表头错位和固定列错位
这篇文章主要介绍了el-table表头根据内容自适应完美解决表头错位和固定列错位,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-01-01vue 中基于html5 drag drap的拖放效果案例分析
本文通过三个案例给大家介绍了vue 中基于html5 drag drap的拖放效果 ,需要的朋友可以参考下2018-11-11
最新评论