Spring Boot實現文件上傳的一些心得

最近,寫了關于spring boot實現文件上傳的接口,本來感覺挺簡單的,但是每次調用接口的時候都會給報異常:org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present.這就令我很費解,于是在Stack Overflow找相關的帖子,基本上都是說在pom.xml文件中需要引入spring-boot-starter-web相關依賴,就會自動包含了文件上傳的依賴。

文件上傳的controller層代碼如下:

用apizza去調用接口的時候就會報錯:


這就令我很費解,最后再細細地看了一遍代碼發現原來寫了一個AppConfig類,在類上面注解了@Configuration,又重新自定義了dispatcherServletRegistration這個方法:


導致自己注入的ServletRegistrationBean跟spring boot默認注入的ServletRegistrationBean的配置不一樣。自己注入的ServletRegistrationBean默認沒有配置處理上傳請求的。

所以需要再自己注入的類中加上:

@AutoWired

private MultipartConfigElement multipartConfigElement;

并且在對應的dispatcherServletRegistration方法中設置文件上傳

注入上傳配置到自己注冊的ServletRegistrationBean

registration.setMultipartConfig(multipartConfigElement);

最后再測試就會成功!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容