使用commons-fileupload上传文件所需要的架包有:commons-fileupload 和common-io两个架包支持,可以到Apache官网下砸。
在配置文件spring-mvc.xml中配置上传:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
//文件上传最大是多少
<property name="maxUploadSize" value="10485760000" />
//上传文件的编码方式
<property name="defaultEncoding" value="utf-8" />
//内存中最大缓存大小
<property name="maxInMemorySize" value="40960" />
</bean>
在对应的jsp页面中主要有两点需要注意,分别问form表单的method=”post”和enctype=”multipart/form-data”,其他的都是平常写的。
在提交到spring mvc中的Controller中对应代码如下所示:
@RequestMapping(value="/upload.do", method=RequestMethod.POST)
public String upload(@RequestParam("files") MultipartFile[] files) throws IOException{
for(MultipartFile file:files){
if(!file.isEmpty()){
FileUtils.copyInputStreamToFile(file.getInputStream(), new File("E:/file"+File.separator+file.getOriginalFilename()));
}
}
return "uploadok";
}
代码中添加@RequestParam主要是应对多个文件上传时,如果是单个文件上传可以不写。