SpringMVC4.2.4 基于原生Servlet 3.0 文件上传

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>

6、大公告成,在服务器部署,测试,没毛病


猜你喜欢

转载自blog.csdn.net/nicolas12/article/details/78733770