org.springframework.web.multipart
패키지의 MultipartResolver
는 파일 업로드를 포함한 멀티파트 요청을 구문 분석하기 위한 전략입니다. Servlet 멀티파트 요청 구문 분석을 위한 컨테이너 기반 StandardServletMultipartResolver
구현이 있습니다. Apache Commons FileUpload를 기반으로 하는 오래된 CommonsMultipartResolver
는 새로운 Servlet 5.0+ 기준이 포함된 Spring Framework 6.0부터 더 이상 사용할 수 없습니다.
멀티파트 처리를 활성화하려면 DispatcherServlet
Spring 구성에서 multipartResolver
라는 이름으로 MultipartResolver
빈을 선언해야 합니다. DispatcherServlet
은 이를 감지하여 들어오는 요청에 적용합니다. multipart/form-data
콘텐츠 유형의 POST가 수신되면 resolver는 현재 HttpServletRequest
를 MultipartHttpServletRequest
로 래핑하여 콘텐츠를 구문 분석하여 부분을 요청 매개변수로 노출하는 것 외에도 확인된 파일에 대한 액세스를 제공합니다.
서블릿 멀티파트 구문 분석은 서블릿 컨테이너 구성을 통해 활성화되어야 합니다. 그렇게 하려면:
Java에서는 서블릿 등록에 MultipartConfigElement
를 설정합니다.
web.xml
에서 서블릿 선언에 "<multipart-config>"
섹션을 추가합니다.
다음 예에서는 서블릿 등록에 MultipartConfigElement
를 설정하는 방법을 보여줍니다.
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
// ...
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
// Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
}
}
Servlet 멀티파트 구성이 완료되면 multipartResolver
라는 이름을 가진 StandardServletMultipartResolver
유형의 Bean을 추가할 수 있습니다.
[Note]
이 resolver 변형은 서블릿 컨테이너의 멀티파트 파서를 있는 그대로 사용하여 잠재적으로 애플리케이션을 컨테이너 구현 차이에 노출시킵니다. 기본적으로 모든 HTTP 메서드를 사용하여 모든multipart/
콘텐츠 유형을 구문 분석하려고 시도하지만 이는 모든 서블릿 컨테이너에서 지원되지 않을 수 있습니다. 자세한 내용과 구성 옵션은StandardServletMultipartResolver
javadoc를 참조하세요.