解决前端上传Formdata中的file为[object Object]的问题

项目场景:

前端:Vue3 + ts + elementui plus
后端:springboot


问题描述

在前端上传form表单时,上传的数据为[object Object]
在这里插入图片描述

同时后端报错:

org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present

原因分析:

后端代码:

 public ResponseData<?> importGeoData(@RequestParam("parentAdcode") @NotNull String parentAdcode,
                                         @RequestParam("file") MultipartFile file) throws Exception {
        GeoUploadRequest uploadRequest = new GeoUploadRequest();
        uploadRequest.setParentAdcode(parentAdcode);
        uploadRequest.setFile(file);
        return getResult(geoDataService.importGeoData(uploadRequest));
    }

由于apifox中上传正常,所以排除后端问题,检查前端代码

查看前端代码:

const file = uploadFileList.value[i];
    console.log(file)
    formData2.append('file', file);
    formData2.append('parentAdcode', formData.parentAdcode);
    importObjects(formData2).then(res=>{
      ElMessage.success('导入成功')
    })

这里打印的file:
在这里插入图片描述
发现file内部还有一个raw属性,我们要上传的是这个raw里面的内容

解决方案:

更改前端代码如下:

const file = uploadFileList.value[i];
    formData2.append('file', toRaw(file.raw));
    formData2.append('parentAdcode', formData.parentAdcode);
    importObjects(formData2).then(res=>{
      ElMessage.success('导入成功')
    })

再次查看payload:
在这里插入图片描述
发送的数据正确,同时后端正确处理请求

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值