element-UI 向后台传递 file数组文件, 后台接收不到

当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 } }); },
posted @ 2021-08-24 09:29  cvM01  阅读(2049)  评论(0)    收藏  举报