在这篇博客中文件上传发现文件大小根据不能进行手动限制始终是1m.只要一上传大于1m的图片就会报错:
{"error_response":{"code":0,"msg":"Unknown error","sub_code":"0","sub_msg":"org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException:
java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field fileName exceeds its maximum permitted size of 10248576 bytes.
后来根据源码之后发现1m这个参数是spring自动装配的默认值:
检查我自己的代码,终于发现的问题,我没有设置
MultipartConfigElement的类型bean
直接加上一个@bean就可以了,另外为了把文件大小做成可配置的,做了以下优化:
/**
* <p>ClassName: UploadBean
* <p>Description: w文件上传配置项
* <p>Author maqp
* <p>Version V1.0
* <p>Date 2017/1/22
*/
@Component
public class UploadBean {
@Value("${uploadSize.maxFileSize}")
String size;
@Bean
public MultipartConfigElement multipartConfigElement(){
MultipartConfigFactory factory=new MultipartConfigFactory();
factory.setMaxRequestSize(size);
factory.setMaxFileSize(size);
return factory.createMultipartConfig();
}
}