- Spring MVC为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring用Jakart Commons FileUpload技术实现了一个 MultipartResolver实现类:CommonsMultipartResolver
- Spring MVC 上下文中默认没有装配MulitpartResolver,因此默认情况下不能处理文件的上传工作,如果想使用Spring 的文件上传功能,需先在上下文中配置MultipartResolver
- defaultEncoding:必须和用户JSP的pageEncoding属性一致,以便正确解析表单的内容。
- 为了让 CommonsMultipartResolver正确工作,必须先将Jakarta Commons FileUpload 及 Jakerta Commons io 的类包添加到类路径下。
<!--xml配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="1024000"></property>
</bean>
<!--jsp页面-->
<form method="post" action="hello/upload.action" enctype="multipart/form-data">
Desc: <input type="text" name="desc"/>
File: <input type="file" name="file"/>
<input type="submit" value="Submit">
</form>
@RequestMapping("/upload") public String upload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile file) throws Exception { if(!file.isEmpty()) { System.out.println("desc"); file.transferTo(new File("d:\\temp\\" + file.getOriginalFilename())); } return "success"; }