关注「Java视界」公众号,获取更多技术干货

springboot文件上传超限org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException

一、错误原因

springboot项目在上传较大文件时报错: 
Maximum upload size exceeded;org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.

报错的原因是:springBoot项目自带的tomcat对上传的文件大小有默认的限制,SpringBoot官方文档中展示:每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。

 

二、解决方法

知道了是tomcat的默认设置限制了上传的文件大小,那我们只需要改变默认设置即可。

1、在【application.properties】配置文件中加入如下代码:

# maxFileSize 单个数据大小
spring.servlet.multipart.maxFileSize = 10MB
# maxRequestSize 是总数据大小
spring.servlet.multipart.maxRequestSize=100MB

有两点要注意:

(1)这里“10MB”不能写成“10Mb”,否则会报另一个错,如下:

(2)SpringBoot的版本不同,这两个配置语句也不一样,具体版本对应如下:

  • Spring Boot 1.3 版本:

     multipart.maxFileSize

  • Spring Boot 1.4 版本和 1.5 版本:

     spring.http.multipart.maxFileSize

  • Spring Boot 2.0 版本:

     spring.servlet.multipart.maxFileSize

 

2、在启动类上加上@Configuration注解,且在类中添加一下代码:

@Bean
public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    // 单个数据大小
    factory.setMaxFileSize("102400KB"); // KB,MB
    // 总上传数据大小
    factory.setMaxRequestSize("1024000KB");
    return factory.createMultipartConfig();
}

 

3、如有网关,在网关中也加入如上配置

 

 

 

 

 

 

 

 

 

 

posted @ 2022-06-25 14:03  沙滩de流沙  阅读(644)  评论(0编辑  收藏  举报

关注「Java视界」公众号,获取更多技术干货