Springboot接收文件報錯Required request part‘file‘is not present問題分析及解決
問題描述
之前在寫Flutter 項目時曾經(jīng)有個手寫簽名文件上傳的需求,通過前端打印文件和網(wǎng)絡抓包,確定了文件不為空,但是后臺死活接收不到文件,最近寫 Vue+elementplus 上傳文件時又出現(xiàn)了同樣的問題。
后端接口Controller定義代碼如下:
@RequestMapping("/file")
public Result<?> saveFile(@RequestParam("groupName")String name,@RequestParam("file") MultipartFile file){
}
前端文件通過 FormData 封裝
const formData = new FormData();
formData.append("groupName", this.newGroup.name)
formData.append("file", this.newGroup.file)
通過前端上傳文件時報錯,錯誤信息如下:

問題排查
瀏覽器抓包發(fā)現(xiàn)確實有文件對象
這里要確認參數(shù)名稱和后臺是否一致

PostMan
使用 PostMan 確定后臺可以正常接收參數(shù),接口沒問題

解決方法
網(wǎng)上搜索到了各種解決方案,在我這里都無效,包括什么存在多個相同的文件名稱、修改請求頭配置等。
最后通過修改封裝的 file 為 file.raw 解決問題。
const formData = new FormData();
formData.append("groupName", this.newGroup.name)
formData.append("file", this.newGroup.file.raw)


總結(jié)
感興趣可以研究一下 file 和 file.raw 的坑。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決MybatisPlus批量插入數(shù)據(jù)報錯:Error getting generated 
在使用MybatisPlus進行批量插入數(shù)據(jù)時遇到空指針異常錯誤,分析原因是由于主鍵生成策略導致的,嘗試通過設置useGeneratedKeys屬性解決問題,但因批量插入方法限制,該方法未能成功,最終通過自定義mapper方法實現(xiàn)批量插入,解決了問題2024-09-09
Java操作Word文檔的全攻略(讀取doc與docx文件)
在當今辦公自動化和文檔處理場景中,Java開發(fā)者經(jīng)常需要處理Word文檔(.doc和.docx格式),無論是數(shù)據(jù)提取、文檔轉(zhuǎn)換還是內(nèi)容分析,掌握高效的Word文檔操作技術至關重要,本文將全面介紹Java中讀取兩種主流Word格式的技術方案、核心API和最佳實踐,需要的朋友可以參考下2025-07-07
SpringBoot+Redis實現(xiàn)分布式緩存的方法步驟
在高并發(fā)的分布式的系統(tǒng)中,緩存是提升系統(tǒng)性能的重要手段,本文主要介紹了SpringBoot+Redis實現(xiàn)分布式緩存的方法步驟,具有一定的參考價值,感興趣的可以了解一下2024-07-07
java面試LruCache?和?LinkedHashMap及算法實現(xiàn)
這篇文章主要為大家介紹了java面試LruCache?和?LinkedHashMap及算法實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02

