首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Spring MVC 文件上傳「Required MultipartFile parameter 'file' is not present」解決方案

     編輯:程式設計疑難解答

錯誤原因分析

控制器方法簽名:

@RequestMapping(method = RequestMethod.POST, params = "picture")
public @ResponseBody String updateLoad(@RequestParam("file") MultipartFile file) { ... }

前端表單:

<form id="imageUploadForm" action='coupon?picture' method="post" enctype='multipart/form-data'>
    <input type="file" name="file" />
    <input type="submit" value="upload" />
</form>

錯誤提示 Required MultipartFile parameter 'file' is not present 表示請求中沒有名為 file 的部分。

常見原因與修正

  1. 表單 enctype 缺失或拼寫錯誤 → 必須為 multipart/form-data。
  2. Spring 配置缺少 MultipartResolver → 在 Spring XML 或 Java Config 中註冊:
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760"/> <!-- 10MB -->
    </bean>
    或 Java Config:
    @Bean
    public MultipartResolver multipartResolver() {
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setMaxUploadSize(10 * 1024 * 1024);
        return resolver;
    }
  3. 請求參數名不匹配 → @RequestParam("file") 需與 <input name="file"> 一致。
  4. 過濾器/攔截器消費了請求流 → 確保無其他組件提前讀取 request.getInputStream()。

調試技巧

  • 瀏覽器開發者工具 Network 面板查看 Request Payload 是否包含 file 部分。
  • 在 Controller 印出 request.getContentType() 確認是否為 multipart/form-data。

修正上述配置後,重新部署即可解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved