참고:
Spring Web 6 를 사용하시려면 Tomcat 버전이 10 이어야 합니다.
그래서 아래 web.xml 의web-app
태그 속성도 그에 맞게 작성된 예시입니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns = "https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
version = "6.0"
metadata-complete = "false">
<!-- 중간내용 생략 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/web/config/**/*.xml</param-value>
</init-param>
<!-- 이걸 꼭 하셔야 됩니다. -->
<multipart-config>
<max-file-size>10485760</max-file-size>
<max-request-size>20971520</max-request-size>
<file-size-threshold>5242880</file-size-threshold>
</multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Java 로 web.xml 설정을 대체하신 분들은 아래처럼...
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
// ...
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
}
}
Mutlipart Configuration 을 끝내셨으면 이제 해당 설정을 읽고,
Multpart 요청을 처리해줄 MultipartResolver 을 빈으로 등록해야 됩니다.
DispatcherServlet
이 인식할 수 있는 spring 설정 XML 파일에 아래와 같이 StandardServletMultipartResolver
를 빈으로 등록합니다.
<bean id="multipartResolver"
class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</bean>
끝입니다.