最近在看SpringMVC的文件上传部分,其实大多数系统都要涉及到文件上传,以前对于Struts的文件上传功能也做过总结了,今天主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤。
一、设置配置文件:
SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file
-
-
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
-
p:defaultEncoding="UTF-8"
-
p:maxUploadSize="5000000"
-
>
-
</beans:bean>
二、创建上传表单:
-
<body>
-
<h2>文件上传</h2>
-
<form action="fileUpload.html" method="post" enctype="multipart/form-data">
-
选择文件:<input type="file" name="file">
-
<input type="submit" value="提交">
-
</form>
-
</body>
注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件类型。
三、编写上传控制类
1、创建一个控制类: FileUploadController和一个返回结果的页面list.jsp
2、编写提交表单的action:
-
-
@Autowired
-
private HttpServletRequest request;
-
-
-
-
-
-
-
-
@RequestMapping("fileUpload")
-
public String fileUpload(@RequestParam("file") MultipartFile file) {
-
-
if (!file.isEmpty()) {
-
try {
-
-
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
-
+ file.getOriginalFilename();
-
-
file.transferTo(new File(filePath));
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
}
-
-
return "redirect:/list.html";
-
}
-
-
-
-
-
-
-
@RequestMapping("list")
-
public ModelAndView list() {
-
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";
-
ModelAndView mav = new ModelAndView("list");
-
File uploadDest = new File(filePath);
-
String[] fileNames = uploadDest.list();
-
for (int i = 0; i < fileNames.length; i++) {
-
-
System.out.println(fileNames[i]);
-
}
-
return mav;
-
}
3、使用SpringMVC注解RequestParam来指定表单中的file参数;
4、指定一个用于保存文件的web项目路径
5、通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。
到此基本的文件上传就结束了,当然,除了单个文件的上传之外,我们有的时候还需要同时上传多个文件,下篇文章我将继续讲解如何同时上传多个文件。
SpringMVC单文件上传
原文:http://blog.csdn.net/libaoqiang613/article/details/38963793