1、开发环境
Eclipse4.6.3
Windows 64位
Tomcat 7.0
2、编写上传文件的前端页面,两点注意,method 必须为 "post" , enctype 必须为 "multipart/form-data"
<form action="upload.do" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<br />
<input type="submit" />
</form>
3、编写处理器,利用SpringMVC 提供的 StandardMultipartHttpServletRequest 来处理请求中的文件
@RequestMapping("/upload.do")
public String upload(HttpServletRequest request) throws Exception {
StandardMultipartHttpServletRequest multipart = new StandardMultipartHttpServletRequest(request);
MultipartFile file = multipart.getFile("file");
String originalFilename = file.getOriginalFilename(); //获取文件名
System.out.println(originalFilename);
File dest = new File("D:\\" + originalFilename); //保存到硬盘
file.transferTo(dest);
return "success";
}
4、在Spring-mvc.xml的配置文件中配置原生请求的处理器
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/>
5、在web.xml中配置servlet支持文件上传
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<multipart-config>
</multipart-config>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>