org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; 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. at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:121) at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:114)
위 예외에서 볼 수 있듯이, 업로드된 파일이 스프링에서 구성한 최대값인 1048576바이트를 초과하기 때문입니다. 파일을 업로드할 때 일반적으로 MultipartFile 인터페이스 클래스를 사용하여 업로드된 파일을 받습니다. MultipartFile 파일의 기본 제한도 1048576바이트(1M)임을 알 수 있습니다.
하지만 대부분의 경우 휴대폰으로 직접 찍는 신분증 사진이나 문서는 기본적으로 2M 이상입니다. 당연히 이는 일상적인 요구 사항을 충족할 수 없으므로 기본 구성 매개변수 크기를 수정해야 합니다.
SpringBoot 버전마다 해당 설정 매개변수가 다릅니다.
Spring Boot 1.3
3. 솔루션
#做限制的参数配置 spring: servlet: multipart: enabled: true #默认支持文件上传 max-file-size: 20MB # 最大支持文件大小 max-request-size: 30MB # 最大支持请求大小 #不做限制的参数配置 spring: servlet: multipart: enabled: true #默认支持文件上传 max-file-size: -1 #不做限制 max-request-size: -1 #不做限制
Customized
MultipartFileConfigimport org.springframework.beans.factory.annotation.Value; 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; /** * @author: 一宿君 * @date: 2022-03-23 19:18:51 * @description: */ @Configuration public class MultipartFileConfig { @Value("${config.multifile.maxFileSize}") private Long maxFileSize; @Value("${config.multifile.maxRequestSize}") private Long maxRequestSize; @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); /** * 单个数据大小, * DataSize.ofMegabytes(maxFileSize)默认是配置字节,将字节转化为MB */ factory.setMaxFileSize(DataSize.ofMegabytes(maxFileSize)); // 总上传数据大小 factory.setMaxRequestSize(DataSize.ofMegabytes(maxRequestSize)); return factory.createMultipartConfig(); } }
그렇습니다. 업로드된 크기를 제어합니다. 언제든지 파일을!
위 내용은 SpringBoot의 제한된 업로드 파일 크기 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!