异常类似于下面
HTTP Status 500 - Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
有两种解决办法
- 在application.propertie配置
- 在Application.class类中配置
第一种方法:(但是测试当中别没有解决问题,没有找到是哪里的原因)
spring3.0写法
multipart.maxFileSize=10Mb
multipart.maxRequestSize=10Mb
spring3.1写法
spring.http.multipart.maxFileSize=10MB
spring.http.multipart.maxRequestSize=10MB
第二种方法:(测试完美解决问题)
public class XXXApplication{
public static void main(String[] args) {
SpringApplication.run(ToutiaoApplication.class, args);
}
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//单个文件最大
factory.setMaxFileSize("10MB"); //KB,MB
/// 设置总上传数据总大小
factory.setMaxRequestSize("10MB");
return factory.createMultipartConfig();
}
}
最后补充一点:要将标签当中enctype属性设置为multipart/form-data,这样会告诉浏览器以multipart数据的形式提交表单,而不是以表单数据的形式进行提交。在multipart中,每个输入域都会对应一个part.
个输都会对应一个part.