接下来用很短的篇幅介绍下spring mvc 3.1文件上传
其实spring的官方文档关于这块介绍已经说的很清楚了,就不过多啰嗦了,简单的把官方文档复述一遍:
spring mvc 将fileupload进行了二次封装,主要为MultipartHttpServletRequest和MultipartFile 两个对象,
分别用语多文件和单文件上传.
准备工作:导入fileupload.jar ,commons-io.jar包
首先是对springMVC-servlet.xml进行配置,增加对文件上传的支持:
<!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons. CommonsMultipartResolver" p:maxUploadSize="-1"/>
里面有一些可选属性,例如:maxUploadSize(文件大小限制:byte,-1为不限制大小(默认值))具体就不列出了。
1.单文件上传:
controller:
@RequestMapping(value="/fileupload",method=RequestMethod.POST)
public String getFile(@RequestParam("file")MultipartFile file) throws IOException{
//do upload
return "index";
}
jsp:
<form action="user/fileupload.action" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
OK ,这样单文件就ok 了。接下来就是对获得的文件进行本地保存了,代码很简单,这里就不罗嗦了。
2.多文件上传:
controller:
@RequestMapping(value="/fileupload",method=RequestMethod.POST)
public String getFile(MultipartHttpServletRequest request) throws IOException{
Iterator<String> it = request.getFileNames();
while(it.hasNext()){
List<MultipartFile> files = request.getFiles(it.next());
for(MultipartFile file : files){
//do upload
//System.out.println(file.getOriginalFilename());
}
}
return "index";
}
jsp:
<form action="user/fileupload.action" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
个人建议不管多文件单文件,直接使用多文件上传(MultipartHttpServletRequest 参数),省的烦了。
ok了,上传就那么简单,动手试试吧!