프론트에서 form 태그로 이미지 파일을 여러 개를 업로드하여 서버로 보내려고 하니, nested exception is java.lang.IllegalStateException : Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest] 이 에러가 발생했다. 이 문제의 원인은 jsp 적용 방법, Resolver 적용 방법, 라이브러리 추가 등을 확인해야 한다.
목차
1. 해결방법
1. 해결방법
이 문제의 해결방법은 정말 다양하다. 아래의 보기처럼 확인해야 하는 것을 기록한다.
1) 라이브러리 추가
파일 업로드를 위해 commons-fileupload.jar 파일을 라이브러리에 넣어놨는지 확인한다.
commons-fileupload.jar는 아래의 URL에서 다운로드할 수 있다.
URL : https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload
2) servlet.xml에 CommonsMultipartResolver 추가
servlet.xml에 MultipartResolver를 사용하기 위해 bean을 등록한다.
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>100000</value>
</property>
<property name="maxInMemorySize">
<value>100000</value>
</property>
</bean>
3) HTML form 태그 확인
아래의 코드에서 enctype을 multipart/form-data로 설정했는지 확인해야 한다.
<form action='/test/test01/testimg.data' enctype='multipart/form-data' id='imageUp' method="POST">
<label for="imageup01" style="cursor: pointer;">사진 업로드</label>
<input type='file' name='ImgFile' onchange='fileCheck();' id="imageup01" style="display:none" multiple="multiple"/>
<input type='button' id='ImgSubmit' value='upload' onclick='fileisChk();' style="display:none"/>
</form>
만약에, 위의 것을 ajax로 보내는 경우에는 enctype과 processData, contentType을 확인해야 한다.
$("#imageUp").ajaxSubmit({
url : '/test/test01/testimg.data',
type:'POST',
async: false,
enctype: 'multipart/form-data',
processData: false,
contentType: false
});
결과적으로 이 문제를 해결한 방법은 2번이다. 기존에 context.xml에 넣어놨는데, servlet에 넣어야 한다.
'IT > 스프링(Spring)' 카테고리의 다른 글
[Spring] 스프링(Spring) GETinputstream() has already been called for this request 문제 해결 방법 (0) | 2023.07.25 |
---|---|
[Spring] 스프링(Spring) Could not find SQL statement to include with refid 'TEST' 문제 해결 방법 (0) | 2023.06.12 |
[Spring] 스프링(Spring) request 파라미터 확인하는 방법 (0) | 2023.06.07 |
[Spring] 스프링(Spring) 크론 표현식(Cron Expression) 정리 (0) | 2023.04.17 |
[스프링/Spring] 스프링(Spring) log4j 설정하는 방법(web.xml) (0) | 2023.03.20 |
[스프링/Spring] 스프링 프레임워크(Spring Framework) RequestMapping URL 설정하는 방법(web.xml) (0) | 2022.12.23 |
[스프링/Spring] 스프링 프레임워크(Spring Framework)의 실행 순서 정리 (0) | 2022.12.15 |
[스프링/Spring] 스프링 프레임워크(Spring FrameWork) 3.0에서 4.0으로 버전 업그레이드 하는 방법 (0) | 2022.12.09 |
최근댓글