Multipart Resolver

Dev.Hammy·2024년 3월 26일
0

반응형 스택에서 이에 상응하는 내용 보기

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는 현재 HttpServletRequestMultipartHttpServletRequest로 래핑하여 콘텐츠를 구문 분석하여 부분을 요청 매개변수로 노출하는 것 외에도 확인된 파일에 대한 액세스를 제공합니다.

Servlet Multipart Parsing

서블릿 멀티파트 구문 분석은 서블릿 컨테이너 구성을 통해 활성화되어야 합니다. 그렇게 하려면:

  • 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를 참조하세요.

0개의 댓글