Spring 4.1.7 MVC @RequestPart 問題

今天在spring 4.1.7 中嘗試 multipart/form-data 的方式上傳文本和文件混合數據,服務器老報錯,說請求中並沒有提供XXX字段(服務端配置的@RequestPart綁定)。

調試客戶端multipart格式,甚至用 html頁面,通過瀏覽器提交都不行。後來將 @RequestPart 換成 @RequestParam 就好了。之後查閱官方示例,也是用的後者。

https://spring.io/guides/gs/uploading-files/

後來發現字符串數據可以接收到,但文件上傳,又解析不出來,猜測可能是 multipart resolver 出了問題,一路調試,發現 servlet request中是有上傳的文件信息的。檢查 application.properties 文件,發現已經啓用了multipart:

multipart.enabled=true
multipart.max-file-size=10MB

於是刪除java 配置中的

@Bean
public CommonsMultipartResolver getMultipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setMaxUploadSize( 1024 * 1024 * 5 );
resolver.setMaxInMemorySize( 1024 * 1024 );
resolver.setDefaultEncoding( “UTF-8” );
return resolver;
}

然後就奇蹟般的好了。猜測是spring 自己會初始化並裝配 CommonsMultipartResolver,自己裝配反而丟失了一些配置,具體還需研究。

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章