SpringMVC文件上傳 多文件上傳實(shí)例
必須明確告訴DispatcherServlet如何處理MultipartRequest。
SpringMVC中提供了文件上傳使用方式如下
配置xxx-servlet.xml,添加如下代碼:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設(shè)置上傳文件的最大尺寸為1MB -->
<property name="maxUploadSize">
<value>1048576</value>
</property>
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設(shè)置上傳文件的最大尺寸為1MB -->
<property name="maxUploadSize">
<value>1048576</value>
</property>
</bean>
注意這里的文件尺寸實(shí)際上只的是所以文件總大小
如果配置了文件大小就以為這你需要配置異常信息控制
所以需要配置異常顯示
<!-- SpringMVC在超出上傳文件限制時(shí),會(huì)拋出org.springframework.web.multipart.MaxUploadSizeExceededException -->
<!-- 該異常是SpringMVC在檢查上傳的文件信息時(shí)拋出來(lái)的,而且此時(shí)還沒(méi)有進(jìn)入到Controller方法中 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- 遇到MaxUploadSizeExceededException異常時(shí),自動(dòng)跳轉(zhuǎn)到/WEB-INF/jsp/error_fileupload.jsp頁(yè)面 -->
<prop
key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>
</props>
</property>
</bean>
<!-- SpringMVC在超出上傳文件限制時(shí),會(huì)拋出org.springframework.web.multipart.MaxUploadSizeExceededException -->
<!-- 該異常是SpringMVC在檢查上傳的文件信息時(shí)拋出來(lái)的,而且此時(shí)還沒(méi)有進(jìn)入到Controller方法中 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- 遇到MaxUploadSizeExceededException異常時(shí),自動(dòng)跳轉(zhuǎn)到/WEB-INF/jsp/error_fileupload.jsp頁(yè)面 -->
<prop
key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>
</props>
</property>
</bean>
或者偷懶點(diǎn),不設(shè)置大小,則最終默認(rèn)是值為不限制。如果非要控制返回信息,可以考慮在地應(yīng)以的異常處理中返回指定格式數(shù)據(jù),例如JSON
配置完了頁(yè)面上一如既往的需要再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 {
// 轉(zhuǎn)型為MultipartHttpRequest:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 獲得文件:
MultipartFile file = multipartRequest.getFile(" file ");
}
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 轉(zhuǎn)型為MultipartHttpRequest:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 獲得文件:
MultipartFile file = multipartRequest.getFile(" file ");
}
這樣也可以獲取到文件
其實(shí)剛才首先需要配置是加入兩個(gè) jar包:
commons-fileupload-1.2.2.jar
commons-io-2.1.jar
- 詳解SpringMVC使用MultipartFile實(shí)現(xiàn)文件的上傳
- SpringMVC 文件上傳配置,多文件上傳,使用的MultipartFile的實(shí)例
- SpringMVC 上傳文件 MultipartFile 轉(zhuǎn)為 File的方法
- SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解
- jquery.form.js框架實(shí)現(xiàn)文件上傳功能案例解析(springmvc)
- SpringMVC上傳圖片與訪(fǎng)問(wèn)
- SpringMvc MultipartFile實(shí)現(xiàn)圖片文件上傳示例
- SpringMVC上傳和解析Excel方法
- SpringMVC+Ajax實(shí)現(xiàn)文件批量上傳和下載功能實(shí)例代碼
- SpringMVC按Ctrl上傳多個(gè)文件的方法
相關(guān)文章
Spring內(nèi)存緩存Caffeine的基本使用教程分享
Caffeine作為當(dāng)下本地緩存的王者被大量的應(yīng)用再實(shí)際的項(xiàng)目中,可以有效的提高服務(wù)吞吐率、qps,降低rt,本文就來(lái)簡(jiǎn)單介紹下Caffeine的使用姿勢(shì)吧2023-03-03SpringBoot集成ElaticJob定時(shí)器的實(shí)現(xiàn)代碼
這篇文章主要介紹了SpringBoot集成ElaticJob定時(shí)器的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06JAVA實(shí)現(xiàn)按時(shí)間段查詢(xún)數(shù)據(jù)操作
這篇文章主要介紹了JAVA實(shí)現(xiàn)按時(shí)間段查詢(xún)數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Java常用數(shù)字工具類(lèi) 大數(shù)乘法、加法、減法運(yùn)算(2)
這篇文章主要為大家詳細(xì)介紹了Java常用數(shù)字工具類(lèi),大數(shù)乘法、加法、減法運(yùn)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05RocketMQ消息過(guò)濾與查詢(xún)的實(shí)現(xiàn)
這篇文章主要介紹了RocketMQ消息過(guò)濾與查詢(xún)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java 較大數(shù)據(jù)量取差集,list.removeAll性能優(yōu)化詳解
這篇文章主要介紹了java 較大數(shù)據(jù)量取差集,list.removeAll性能優(yōu)化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09Java集合類(lèi)之Map集合的特點(diǎn)及使用詳解
這篇文章主要為大家詳細(xì)介紹一下Java集合類(lèi)中Map的特點(diǎn)及使用,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,感興趣的可以了解一下2022-08-08jdk7 中HashMap的知識(shí)點(diǎn)總結(jié)
HashMap的原理是老生常談了,不作仔細(xì)解說(shuō)。一句話(huà)概括為HashMap是一個(gè)散列表,它存儲(chǔ)的內(nèi)容是鍵值對(duì)(key-value)映射。這篇文章主要總結(jié)了關(guān)于jdk7 中HashMap的知識(shí)點(diǎn),需要的朋友可以參考借鑒,一起來(lái)看看吧。2017-01-01Mybatis plus中的like查詢(xún)問(wèn)題
這篇文章主要介紹了Mybatis plus中的like查詢(xún)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06