[Spring Boot] 파일 업로드 크기 제한과 사용자 정의 예외 처리 방법

enjoy89·2024년 11월 19일

application.properties or application.yml 내에서 파일 업로드 용량을 제한하는 설정을 추가하면, 스프링에서 자동으로 이 요청을 차단하여 서비스나 유틸리티 계층에 도달하기 전에 예외를 발생시킴

    spring.servlet.multipart.max-file-size=5MB       // 단일 파일의 최대 크기
    spring.servlet.multipart.max-request-size=50MB   // 전체 요청의 최대 허용 크기
  • MaxUploadSizeExceededException: 단일 파일 크기 제한을 초과한 경우
  • IllegalStateException: 요청 크기 전체가 max-request-size를 초과한 경우


파일 용량 초과에 대한 처리를 사용자 정의하고 싶다면 @ControllerAdvice@ExceptionHandler를 사용하여 MaxUploadSizeExceededException 예외를 처리할 수 있음

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public ResponseEntity<String> handleMaxSizeException(MaxUploadSizeExceededException ex) {
        return ResponseEntity.status(HttpStatus.PAYLOAD_TOO_LARGE)
                .body("파일 크기가 허용된 제한을 초과했습니다!");
    }
}

Reference

https://velog.io/@park2348190/MultipartProperties의-max-file-size-max-request-size의-차이

profile
Junior Backend Developer 🌱

0개의 댓글