Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了MultipartResolver接口的Bean。选择multipart解析器其实很简单,因为Spring只提供了一个CommonMultipartResolver。它的配置如下:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:maxUploadSize="5000000"/>
2,接收上传的文件:
@RequestMapping(method=RequestMethod.POST) public String addImg( @RequestParam MultipartFile image) throws IOException{ String path = "D:\\john\\project\\paytool\\src\\main\\webapp\\resources\\img"; File f = new File(path+"/"+image.getOriginalFilename()); FileUtils.copyInputStreamToFile(image.getInputStream(), f); return "redirect:/user/img"; }
path是想要存放图片的路径。
3,在表单上添加文件上传域:
<sf:form method="post" modelAttribute="user" enctype="multipart/form-data"> <h3>选择需要上传的图片:</h3> <input type="file" name="image"> </sf:form>
这样一个简单的文件上传就完成了。