报错原因
nested exception is org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size () exceeds the configured maximum (10485760)] with root cause the request was rejected because its size () exceeds the configured maximum (10485760)
这个错误信息表明在尝试上传文件时,文件的大小超出了Spring框架配置的最大上传限制。这里的错误是由Spring的
MaxUploadSizeExceededException
异常引起的,它包装了java.lang.IllegalStateException
,后者又是由org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException
引起的。错误信息中的关键部分是:
- 配置的最大上传大小为10485760字节(大约10MB)。
要解决这个问题,您需要调整Spring应用程序中的最大文件上传大小限制。这通常在Spring的配置文件中设置,例如
application.properties
或application.yml
,或者在Spring Boot的启动类中通过注解配置。
解决措施
1、配置文件加参数
server:
servlet:
multipart:
enabled: true
# 单个文件大小
max-file-size: 900MB
# 设置总上传的文件大小
max-request-size: 900MB
2、加配置类
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
import javax.servlet.MultipartConfigElement;
/**
* 文件上传配置类
*/
@Configuration
public class FileUploadConfig {
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
// 单个数据大小
factory.setMaxFileSize(DataSize.parse("102400KB")); // KB,MB
// 总上传数据大小
factory.setMaxRequestSize(DataSize.parse("1024000KB"));
return factory.createMultipartConfig();
}
}