其实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了,上传就那么简单,动手试试吧!