SpringMVC文件上傳 多文件上傳實例。本站提示廣大學習愛好者:(SpringMVC文件上傳 多文件上傳實例)文章只能為提供參考,不一定能成為您想要的結果。以下是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>
或許偷懶點,不設置年夜小,則終究默許是值為不限制。假如非要掌握前往信息,可以斟酌在地應以的異常處置中前往指定格局數據,例如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