控制器方法簽名:
@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 的部分。
enctype 缺失或拼寫錯誤 → 必須為 multipart/form-data。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;
}
@RequestParam("file") 需與 <input name="file"> 一致。request.getInputStream()。file 部分。request.getContentType() 確認是否為 multipart/form-data。修正上述配置後,重新部署即可解決。