multipart 리졸버

JAVA 2019. 2. 28. 17:14

multipart 리졸버


○ 파일 업로드와 같이 멀티파트 포멧의 요청정보를 처리하는 전략을 설정할 수 있다.


○ 멀티파트 처리를 담당하는 다양한 구현으로 바꿀 수 있도록 설계되어 있지만, 현재는 아파치 Commons 의 FileUpload 라이브러리를 사용하는 CommonsMultipartResolver 한 가지만 지원된다.


○ 멀티파트 리졸버 전략은 디폴트로 등록되는 것이 없다. 따라서 적용하려면 아래와 같이 빈을 등록해줘야 한다.


<bean name="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    

<property name="maxUploadSize" value="100000" /> 

</bean> 


○ DispatcherServlet 은 클라이언트로부터 멀티파트 요청을 받으면 멀티파트 리졸버에게 요청해서 HttpServletRequest 의 확장 타입인 MultipartHttpServletRequest 오브젝트로 전환한다.


○ MultipartHttpServletRequest 에는 멀티파트를 디코딩한 내용과 이를 참조하거나 조작할 수 있는 기능이 추가되어 있다.


○ 아래와 같이 HttpServletRequest 를 파라미터로 받은 건트롤러에서는 전달받은 오브젝트를 MultipartHttpServletRequest 로 캐스팅한 후에 멀티파트 정보를 가진 MultipartFile 오브젝트를 가져와 사용할 수 있다.


public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {                  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;     

MultipartFile multipartFile = multipartRequest.getFile("image");    

 .... 


○ 애노테이션 방식의 유연한 컨트롤러 메소드를 이용하면 처음부터 MultipartFile 타입의 파라미터로 전달받거나 변환기를 이용해서 아예 바이트 배열이나 파일 정보를 담은 오브젝트로 가져올 수도 있다.

'JAVA' 카테고리의 다른 글

multipart 클래스 사용 예제  (0) 2019.02.28
multipart 케스팅  (0) 2019.02.28
method 동적 호출  (0) 2019.02.27
MD5 암호화 예제  (0) 2019.02.27
mac address  (0) 2019.02.15
블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,