0


解决前端上传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

原因分析:

后端代码:

publicResponseData<?>importGeoData(@RequestParam("parentAdcode")@NotNullString parentAdcode,@RequestParam("file")MultipartFile file)throwsException{GeoUploadRequest uploadRequest =newGeoUploadRequest();
        uploadRequest.setParentAdcode(parentAdcode);
        uploadRequest.setFile(file);returngetResult(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:
在这里插入图片描述
发送的数据正确,同时后端正确处理请求

标签: 前端 状态模式

本文转载自: https://blog.csdn.net/qq_26123545/article/details/136562420
版权归原作者 ZhongruiRao 所有, 如有侵权,请联系我们删除。

“解决前端上传Formdata中的file为[object Object]的问题”的评论:

还没有评论