如何解決前端上傳Formdata中的file為[object?Object]的問題
項(xiàng)目場(chǎng)景:
- 前端:Vue3 + ts + elementui plus
- 后端:springboot
問題描述
在前端上傳form表單時(shí),上傳的數(shù)據(jù)為[object Object]

同時(shí)后端報(bào)錯(cuò):
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('導(dǎo)入成功')
})
這里打印的file:

發(fā)現(xiàn)file內(nèi)部還有一個(gè)raw屬性,我們要上傳的是這個(gè)raw里面的內(nèi)容
解決方案:
更改前端代碼如下:
const file = uploadFileList.value[i];
formData2.append('file', toRaw(file.raw));
formData2.append('parentAdcode', formData.parentAdcode);
importObjects(formData2).then(res=>{
ElMessage.success('導(dǎo)入成功')
})
再次查看payload:

發(fā)送的數(shù)據(jù)正確,同時(shí)后端正確處理請(qǐng)求
總結(jié)
到此這篇關(guān)于如何解決前端上傳Formdata中的file為[object Object]問題的文章就介紹到這了,更多相關(guān)前端上傳Formdata中file為[object Object]內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue點(diǎn)擊單張圖片放大實(shí)現(xiàn)步驟(純js)
這篇文章主要給大家介紹了關(guān)于vue點(diǎn)擊單張圖片放大實(shí)現(xiàn)的相關(guān)資料,在vue項(xiàng)目中實(shí)現(xiàn)點(diǎn)擊圖片放大功能相信對(duì)大家來(lái)說(shuō)都不陌生,文中給出了詳細(xì)的js示例代碼,需要的朋友可以參考下2023-07-07
vue路由跳轉(zhuǎn)傳遞參數(shù)的方式總結(jié)
在本篇文章和里小編給各位總結(jié)了關(guān)于vue路由跳轉(zhuǎn)傳遞參數(shù)的三種方式以及相關(guān)代碼,需要的朋友們可以學(xué)習(xí)下。2020-05-05
vue data變量相互賦值后被實(shí)時(shí)同步的解決步驟
這篇文章主要介紹了vue data變量相互賦值后被實(shí)時(shí)同步的解決步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-08-08
Vue實(shí)現(xiàn)動(dòng)態(tài)顯示表單項(xiàng)填寫進(jìn)度功能
這篇文章主要介紹了Vue實(shí)現(xiàn)動(dòng)態(tài)顯示表單項(xiàng)填寫進(jìn)度功能,此功能可以幫助用戶了解表單填寫的進(jìn)度和當(dāng)前狀態(tài),提高用戶體驗(yàn),通常實(shí)現(xiàn)的方式是在表單中添加進(jìn)度條,根據(jù)用戶填寫狀態(tài)動(dòng)態(tài)更新進(jìn)度條,感興趣的同學(xué)可以參考下文2023-05-05
ElementUI下拉組件el-select一次從后端獲取選項(xiàng)并設(shè)置默認(rèn)值方式
這篇文章主要介紹了ElementUI下拉組件el-select一次從后端獲取選項(xiàng)并設(shè)置默認(rèn)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

