解决前端上传Formdata中的file为[object Object]的问题
前端:Vue3 + ts + elementui plus后端:springboot。解决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:
发送的数据正确,同时后端正确处理请求
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)