当vue通过post请求向后台同时传递多个file文件和数组时,应采用Formdata对象进行循环append文件,切记不可以append file数组,不然后台会收不到文件对象,而普通数组可以通过append数组的形式进行添加,后台是可以接收到的。
通过vue做文件上传的时候,定义了 :file-list = " imgList "
// 上传文件列表 imgList: [],
通过绑定 upload 的 onchange 事件可以 获取 需要上传的文件对象。
// 上传onchange事件 choiceFile(file, fileList) {this.imgList.push(file.raw); //file.raw 就是文件对象 },
注意: 在请求的时候不能直接 append 添加 imgList ,后台在接收的时候会接收不到,需要Formdata对象进行循环append文件。
uploadSectionFile() {
//判断文件大小是否超过2M this.field101BeforeUpload(); // 根据后台需求数据格式 const form = new FormData(); // 文件对象 for (const item of this.imgList) { form.append("file", item); } // 项目封装的请求方法,下面做简单介绍 imgUpload(form).then((response) => { const code = response && parseInt(response.code, 10); if (code === 200) { // xxx } else { // xxx } }); },