Tiny Bunny [Spring] Maximum upload size exceeded - 솜님의 블로그
솜님의 블로그
카테고리
작성일
2024. 11. 2. 20:23
작성자
겨울솜사탕

오류 원인 및 내용

프로젝트 코드를 파트별로 합치고 하나씩 기능이 구현되는지 확인 중,

용량이 큰 사진을 업로드했더니 발생된 오류이다.

 

구글링 해봤더니 application.properties에 설정을 추가하라고 했는데,

이렇게 수정하는 경우는 Boot를 사용하는 과정이고, 우리는 현재 Boot를 사용하지 않고 있기 때문에

이곳에 추가하는 것은 의미가 없다.

 

 

해결방안

 

<!-- MultipartFile 사용하기 위한 dependency / commons-fileupload, spring-web, commons-io-->
		<!-- HTML 폼에서 실제 파일 업로드를 처리 -->
		<!-- 멀티파트 데이터를 쉽게 처리할 수 있도록 도와줌 -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>

		<!-- Spring MVC와 통합하여 HTTP 요청 및 응답을 관리 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		
		<!-- 파일 작업을 용이하게 해줌 -->
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.8.0</version>
		</dependency>

기존에 commons-fileupload 의존만 있었는데,

아래의 두 가지 의존도 추가했더니 오류는 발생되지 않았다.

 

다만 이 dependency들을 넣는다고 해서 업로드할 수 있는 용량이 늘어나는 것은 아니고,

spring-web이 없으면 파일 업로드를 위한 multipart 요청 처리가 제대로 이루어지지 않아서

용량이 큰 파일을 업로드 하는 경우 서블릿 컨테이너가 설정한 파일 크기 제한에 걸려 오류가 발생할 수 있다고 한다.

 

기본 파일 크기 제한은 1~2MB 정도라고 하며,

이 설정을 web.xml에 설정할 수 있다.

 

<servlet>
	<servlet-name>ds</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <multipart-config>
        <max-file-size>10485760</max-file-size>  <!-- 최대 파일 크기: 10MB -->
        <max-request-size>52428800</max-request-size>  <!-- 최대 요청 크기: 50MB -->
        <file-size-threshold>0</file-size-threshold>  <!-- 메모리 내 임시 파일 크기 -->
    </multipart-config>
</servlet>

multipart-config 설정을 통해 지정해줄 수 있다.

 

 

▼ 용량에 따른 value 설정

  • 2MB : 2097152
  • 5MB : 5242880
  • 10MB : 10485760
  • 50MB : 52428800