본문 바로가기
서버 공부

[스프링] org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request 해결 방법

by 모선효 2024. 6. 13.

 

 

파일 올리기 API를 수행하는 도중 아래와 같은 오류를 접하게 됐습니다.

 

더보기

org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request

위 오류는 클라이언트와 서버 간의 데이터 형식 혹은 요청 설정에 문제가 생겨 발생합니다.

 

저 같은 경우는 서버의 문제였으며, application.yml 파일을 수정하면서 해결할 수 있었습니다.

 

spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 20MB
      max-request-size: 20MB

 

- max-file-size : 파일 하나 당의 허용 크기

- max-request-size: 전체 파일 허용 크기

 

스프링은 기본적으로 max-file-size는 1MB, max-request-size는 10MB로 제한해두기 때문에 좀 더 큰 용량의 파일을 업로드할 예정이라면 위와 같이 따로 설정을 해두셔야 합니다.

 

+) 예외처리 추가해보기

@Slf4j
@RestControllerAdvice
public class ExceptionControllerAdvice {
    
	/**
     * multipart 파일 업로드 예외 처리
     */
    @ExceptionHandler(MultipartException.class)
    public ResponseEntity<ErrorResponse> handleMultipartException(MultipartException e) {
        log.error("MultipartException: ", e);
        final ErrorResponse response = ErrorResponse.of(ErrorCode.FILE_UPLOAD_FAILED);
        return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
    }
}

 

Reference

https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/web/servlet/MultipartProperties.html