SpringMVC中使用StandardServletMultipartResolver进行文件上传
2017-04-18 21:47
591 查看
概述
从Spring3.1开始,Spring提供了两个MultipartResolver的实现用于处理multipart请求。CommonsMultipartResolver
StandardServletMultipartResolver
CommonsMultipartResolver使用commons Fileupload来处理multipart请求,所以在使用时,必须要引入相应的jar包;
StandardServletMultipartResolver是基于Servlet3.0来处理multipart请求的,所以不需要引用其他jar包,但是必须使用支持Servlet3.0的容器才可以。
以tomcat为例,从Tomcat 7.0.x的版本开始就支持Servlet3.0了。
如何确定哪个版本的Tomcat支持servlet3.0可以看这里。
Spring的配置
在配置文件fileUpload-servlet.xml中设置bean,bean的id必须是multipartResolver。这里并没有对上传文件的大小等参数进行配置,因为相应的配置都移到了web.xml中。
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"> </bean>
web.xml的配置
要注意xml中web-app节点使用的版本,必须是3.0+。要注意servlet节点下的multipart-config节点的配置。区别与使用CommonsMultipartResolver进行文件上传时配置的不同。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> ···· <servlet> <servlet-name>fileUpload</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:fileUpload-servlet.xml</param-value> </init-param> <load-on-startup>0</load-on-startup> <multipart-config> <!--临时文件的目录--> <location>d:/</location> <!-- 上传文件最大2M --> <max-file-size>2097152</max-file-size> <!-- 上传文件整个请求不超过4M --> <max-request-size>4194304</max-request-size> </multipart-config> </servlet> .... </web-app>
Controller设置
两种上传方法,大同小异。@Controller @RequestMapping(value = "/file2") public class FileController2 { /** * 在方法签名中使用MulitpartHttpServletRequest类型。 * * @param request * @return */ @RequestMapping(value = "/commUploadB") @ResponseBody public JSONObject commUploadB(MultipartHttpServletRequest request) { JSONObject json = new JSONObject(); json.put("succ", false); try { MultipartFile file = request.getFile("uploadFileB");// 与页面input的name相同 File imageFile = new File("d:/upload2.jpg");// 上传后的文件保存目录及名字 file.transferTo(imageFile);// 将上传文件保存到相应位置 json.put("succ", true); return json; } catch (Exception e) { e.printStackTrace(); return json; } } /** * 在方法签名中使用MultipartFile类型,并使用@RequestPart注解。 * * @param uploadFileC * @return */ @RequestMapping(value = "/commUploadC") @ResponseBody public JSONObject commUploadC(@RequestPart("uploadFileC") MultipartFile uploadFileC) { JSONObject json = new JSONObject(); json.put("succ", false); try { File imageFile = new File("d:/upload3.jpg");// 上传后的文件保存目录及名字 uploadFileC.transferTo(imageFile);// 将上传文件保存到相应位置 json.put("succ", true); return json; } catch (Exception e) { e.printStackTrace(); return json; } } }
相关文章推荐
- 【SpringMVC】SpringMVC中使用StandardServletMultipartResolver进行文件上传
- SpringMVC中使用StandardServletMultipartResolver进行文件上传
- Spring中使用StandardServletMultipartResolver进行文件上传
- SpringMVC中使用StandardServletMultipartResolver上传文件实例
- springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?
- SpringMVC中使用CommonsMultipartResolver进行文件上传
- SpringMVC中使用CommonsMultipartResolver进行文件上传
- SpringMVC中使用CommonsMultipartResolver进行文件上传
- springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-003- 上传文件multipart,配置StandardServletMultipartResolver、CommonsMultipartResolver
- SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
- SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
- SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
- spring mvc中使用CommonsMultipartResolver进行文件上传
- 使用SpringMvc的CommonsMultipartResolver上传文件(效率很高)
- SpringMVC使用CommonsMultipartResolver实现文件上传
- springmvc文件上传,使用它的MultipartHttpServletRequest,tomcat中正常,resion中报错
- SpringMVC中使用CommonsMultipartResolver上传文件实例
- SpringMVC上传图片总结(1)-Web Uploader--常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest
- SpringMVC上传图片总结(1)---常规方法进行图片上传,使用了MultipartFile、MultipartHttpServletRequest