반응형

◆ MultipartFile 파일 업로드 최대크기 지정


MultipartFile 속성 설명 미 지정시 기본값
max-file-size 개별 파일에 대해 허용되는 최대크기를 지정한다. (※1) 1MB
max-request-size 전체 요청의에 대해 허용되는 최대크기를 지정한다. (※2) 10MB

 

※1 : 스프링 부트의  MultipartFile의 업로드에 관한 최대크기는 application.properties 나 application.yml 파일에서  지정하면 된다.

< application.properties >
spring.servlet.multipart.max-file-size=3MB
spring.servlet.multipart.max-request-size=4MB

< application.yml >
spring:
   servlet:
      multipart:
        max-file-size: 3MB
        max-request-size: 4MB

 

※2 : 예를 들어 max-file-size를 3MB, max-request-size를 4MB를 설정했을 시 2.5MB의 파일을 두 개(총 5MB) 업로드하면 개별 파일들은 max-file-size에서 지정한 크기(3MB > 2.5MB)보다 작으니 문제없지만, max-request-size 에서 지정한 크기(4MB < 5MB)보다 크게 되어 MaxUploadSizeExceededException 에러가 발생한다.

 

 

◆ 크기지정시 단위


크기지정시 단위는 KB, MB, GB를 사용할 수 있고, 단위 없이 숫자만 있을 경우 바이트 단위로 인식된다.

 

 

◆ 최대크기 무제한으로 지정


크기를 단위없이 -1 로 지정하면 파일업로드의 최대크기가 무제한이 되지만, 요청이 Tomcat에서 시간 초과되는 경우 실패할 가능성도 있다.

 

 

MaxUploadSizeExceededException


MaxUploadSizeExceededException 에러는  Spring에서 설정된 최대 파일 크기나 요청 크기를 초과할 때 발생한다.

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; 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 (설정최대크기)] with root cause

 

 

참조
Class MultipartProperties
https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/web/servlet/MultipartProperties.html
Tuning File Upload Limits
https://spring.io/guides/gs/uploading-files

 


글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --

 

반응형