티스토리 뷰

자바 multipart/form-data 파일업로드 오류

 

java.lang.IllegalStateException: Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]

java.lang.IllegalStateException: Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]: SecurityContextHolderAwareRequestWrapper[ org.springframework.security.web.context.HttpSessionSecurityContextRepository$Servlet3SaveToSessionRequestWrapper@66be2686]

컨트롤러의 파라미터로 MultipartHttpServletRequest 객체를 받고있는데 submit되는 요청이 multipart/form-data 형식이 아니여서 생기는 오류다.

HTML submit인 경우 <form> 태그에 enctype="multipart/form-data" attribute를 추가해주자.

<form action="url" method="post" enctype="multipart/form-data">
.
.
.
</form>

ajax를 이용한 요청인 경우 ajax 옵션에 processData: false, contentType: false 이 두가지 속성 값을 추가해주자

$.ajax({
	type: "post",
	url: "url",
	processData: false,
	contentType: false,
    
    .
    .
    .
    
})

아니면 간혹 기존에 MultipartHttpServletRequest 객체를 파라미터로 사용하는 컨트롤러를 복사해서 사용하다가 필요하지 않는데 그대로 딸려오는 경우가 있다.

필요없다면 삭제해주자.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함