spring mvc中的文件上传

时间:2022-11-02 20:37:42

使用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主要是应对多个文件上传时,如果是单个文件上传可以不写。