java.lang.IllegalStateException

来源:互联网 发布:淘宝官方app客户端下载 编辑:程序博客网 时间:2024/05/18 03:17

在这篇博客中文件上传发现文件大小根据不能进行手动限制始终是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 */@Componentpublic class UploadBean {   @Value("${uploadSize.maxFileSize}")    String size;    @Bean    public MultipartConfigElement multipartConfigElement(){       MultipartConfigFactory factory=new MultipartConfigFactory();        factory.setMaxRequestSize(size);        factory.setMaxFileSize(size);        return factory.createMultipartConfig();    }}


0 0
原创粉丝点击