如何解决前端上传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:
发送的数据正确,同时后端正确处理请求
总结
到此这篇关于如何解决前端上传Formdata中的file为[object Object]问题的文章就介绍到这了,更多相关前端上传Formdata中file为[object Object]内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决el-upload批量上传只执行一次成功回调on-success的问题
这篇文章主要介绍了解决el-upload批量上传只执行一次成功回调on-success的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
最新评论