您的位置:首页 > 编程语言 > Java开发

java.lang.IllegalStateException

2017-02-07 16:33 274 查看
这篇博客中文件上传发现文件大小根据不能进行手动限制始终是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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐