SpringMVC文件上傳 多文件上傳實例
必須明確告訴DispatcherServlet如何處理MultipartRequest。
SpringMVC中提供了文件上傳使用方式如下
配置xxx-servlet.xml,添加如下代碼:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設置上傳文件的最大尺寸為1MB -->
<property name="maxUploadSize">
<value>1048576</value>
</property>
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設置上傳文件的最大尺寸為1MB -->
<property name="maxUploadSize">
<value>1048576</value>
</property>
</bean>
注意這里的文件尺寸實際上只的是所以文件總大小
如果配置了文件大小就以為這你需要配置異常信息控制
所以需要配置異常顯示
<!-- SpringMVC在超出上傳文件限制時,會拋出org.springframework.web.multipart.MaxUploadSizeExceededException -->
<!-- 該異常是SpringMVC在檢查上傳的文件信息時拋出來的,而且此時還沒有進入到Controller方法中 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- 遇到MaxUploadSizeExceededException異常時,自動跳轉到/WEB-INF/jsp/error_fileupload.jsp頁面 -->
<prop
key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>
</props>
</property>
</bean>
<!-- SpringMVC在超出上傳文件限制時,會拋出org.springframework.web.multipart.MaxUploadSizeExceededException -->
<!-- 該異常是SpringMVC在檢查上傳的文件信息時拋出來的,而且此時還沒有進入到Controller方法中 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- 遇到MaxUploadSizeExceededException異常時,自動跳轉到/WEB-INF/jsp/error_fileupload.jsp頁面 -->
<prop
key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>
</props>
</property>
</bean>
或者偷懶點,不設置大小,則最終默認是值為不限制。如果非要控制返回信息,可以考慮在地應以的異常處理中返回指定格式數(shù)據(jù),例如JSON
配置完了頁面上一如既往的需要再form表單中增加:enctype="multipart/form-data"
然后就是需要處理的action了,可以有兩種方式
第一種方式:
public String login( @RequestParam MultipartFile file, Model model) {
………………
}
public String login( @RequestParam MultipartFile file, Model model) {
………………
}
其中file的名字必須保證與<input type=file>中的那么屬性值保持一致,若果是多文件上傳,則考慮使用
public String login(@Valid UserInfo userInfo, BindingResult result, @RequestParam MultipartFile[] files, Model model) {
………………
}
public String login(@Valid UserInfo userInfo, BindingResult result, @RequestParam MultipartFile[] files, Model model) {
………………
}
單文件可以省略 @RequestParam 多文件則不可省略
第二種方式:
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 轉型為MultipartHttpRequest:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 獲得文件:
MultipartFile file = multipartRequest.getFile(" file ");
}
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 轉型為MultipartHttpRequest:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 獲得文件:
MultipartFile file = multipartRequest.getFile(" file ");
}
這樣也可以獲取到文件
其實剛才首先需要配置是加入兩個 jar包:
commons-fileupload-1.2.2.jar
commons-io-2.1.jar
- 詳解SpringMVC使用MultipartFile實現(xiàn)文件的上傳
- SpringMVC 文件上傳配置,多文件上傳,使用的MultipartFile的實例
- SpringMVC 上傳文件 MultipartFile 轉為 File的方法
- SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解
- jquery.form.js框架實現(xiàn)文件上傳功能案例解析(springmvc)
- SpringMVC上傳圖片與訪問
- SpringMvc MultipartFile實現(xiàn)圖片文件上傳示例
- SpringMVC上傳和解析Excel方法
- SpringMVC+Ajax實現(xiàn)文件批量上傳和下載功能實例代碼
- SpringMVC按Ctrl上傳多個文件的方法
相關文章
Spring內(nèi)存緩存Caffeine的基本使用教程分享
Caffeine作為當下本地緩存的王者被大量的應用再實際的項目中,可以有效的提高服務吞吐率、qps,降低rt,本文就來簡單介紹下Caffeine的使用姿勢吧2023-03-03SpringBoot集成ElaticJob定時器的實現(xiàn)代碼
這篇文章主要介紹了SpringBoot集成ElaticJob定時器的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06JAVA實現(xiàn)按時間段查詢數(shù)據(jù)操作
這篇文章主要介紹了JAVA實現(xiàn)按時間段查詢數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Java常用數(shù)字工具類 大數(shù)乘法、加法、減法運算(2)
這篇文章主要為大家詳細介紹了Java常用數(shù)字工具類,大數(shù)乘法、加法、減法運算,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05java 較大數(shù)據(jù)量取差集,list.removeAll性能優(yōu)化詳解
這篇文章主要介紹了java 較大數(shù)據(jù)量取差集,list.removeAll性能優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09