基于spring mvc
文件上传配置
之前的配置方法名为commonsMultipartResolver
但是在使用时参数注入MultipartFile类型时提示没有文件上传的配置 怀疑并不是根据type注入而是根据name进行的注入.只是怀疑,并没有深入的挖源码
/**
* 目前的最新配置
*/
@Bean
public CommonsMultipartResolver multipartResolver(){
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setMaxUploadSize(100*1024*1024);
resolver.setMaxUploadSizePerFile(10*1024*1024);
return resolver;
}
声明式文件上传使用
@Controller
@RequestMapping("/asset/test")
public class ExportImportAssetController implements LogSupport {
/**
* file 为 submit时的 name值 此为单文件上传
* @return
*/
@RequestMapping("upload")
public ModelAndView upload(@RequestPart("file") MultipartFile multipartFile){
...
}
/**
* file 为 submit时的 name值 此为多文件上传
* @return
*/
@RequestMappping("uploadAll")
publc ModelAndView upload(@RequestPart("files") MultipartFile [] files){
...
}
}
标准
从Spring3.1开始,Spring提供了两个MultipartResolver的实现用于处理multipart请求。
- CommonsMultipartResolver
- StandardServletMultipartResolver
CommonsMultipartResolver
使用commons Fileupload来处理multipart
请求,所以在使用时,必须要引入相应的jar包;
StandardServletMultipartResolver
是基于Servlet3.0
来处理multipart
请求的,所以不需要引用其他jar包,但是必须使用支持Servlet3.0的容器才可以。
EAP 目前仅支持jdk8+
servlet3.1+
javaee7.0
推荐使用tomcat8.5+
jetty9.4.11+
所以后期我们会更换 MultipartResolver
的实现 不向下兼容