SpringMVC 实现文件上传

SpringMVC实现文件上传很简单,spring本身的使用也非常简单,要使用spring的某些功能,只需要在spring

的配置文件声明对应的功能的bean即可,如题,我们这里要用到的文件上传的bean是MultipartResolver。

第一步:加入到配置文件

<!-- 上传文件bean -->	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 		<property name="defaultEncoding" value="utf-8" /> <property name="maxUploadSize" 		value="5400000000" /> <property name="maxInMemorySize" value="40960" /> 	</bean>

其中maxUploadSize=”5400000000″ 是上传文件的大小,单位为字节

第二步:配置Controller中的请求

@RequestMapping({"/resourceFileUpload"})   public String fileUpload(@RequestParam("file") MultipartFile file,HttpServletRequest request) {	   if(!file.isEmpty()) {		   try {			   String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"  + file.getOriginalFilename();			   System.out.println(filePath);			   file.transferTo(new File(filePath));			   //file.transferTo(new File("E:/" + file.getOriginalFilename()));		   }catch(Exception e) {			   e.printStackTrace();		   }	   }	   return "";   }

第三不步:配置请求表单

<form action="/Spring3_SpringMVC_Hibernate4_test2/resource/resourceFileUpload" method="post" enctype="multipart/form-data">		<h3>文件上传</h3>				选择文件:<input type="file" name="file" id="file" value="" /><input type="submit" value="提交" />	</form>

其中表单中记得声明 enctype=”multipart/form-data”

到这里使用springMVC实现单一文件上传就完成了。

如果要实现多文件上传,也很简单,说一下思路,在jsp中写表单时,添加多个input即可

,上面的例子只有一个

选择文件:<input type="file" name="file" id="file" value="" />

多文件上传,只需要粘贴多个,name相同即可

在controller中,对应请求的action方法的参数配置成数组即可,例如:

public String fileUpload(@RequestParam("file") MultipartFile[] file,HttpServletRequest request) {
    ......
}