01_트러블슈팅

이슈

  • 파일을 두개이상 업로드하기 위해 formenctype="multipart/form-data" 로 지정했는데 controller에서 null값을 전달받음
  • 전달할때는 이렇게 담겨서 보내는데
  • controller 에서 받을때는 null값을 받는다.


해결

  • 엄청 단순한 세팅 문제였었다.
<!-- servlet-context.xml -->
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<beans:property name="defaultEncoding" value="UTF-8"/>
	<beans:property name="maxUploadSize" value="52428800"/> 
	<beans:property name="maxInMemorySize" value="1048576"/> 
</beans:bean>
    
  • servlet-context.xml 파일에 multipartResolver 를 추가하여 해결

  • 인코딩 타입이 Multipart이라면, 파라미터나 업로드한 파일을 구하려면 전송 데이터를 처리해 주어야 한다.

Propertytype설명
maxUploadSizelong- 최대 업로드 가능한 바이트 크기
- 기본값은 -1이며 -1은 제한이 없음
maxinMemorySizeint- 디스크에 임시 파일을 생성하기 전에
메모리에 보관할 수 있는 최대 바이트 크기
- 기본값은 10240 바이트
defaultEncodingString- 요청을 파싱할 때 사용할 캐릭터 인코딩
- 기본값은 HttpServletRequest.setEncording() 에 지정한 캐릭터셋

이슈

  • input 폼에서 파일 업로드 기능을 넣고 실행하면 500 에러 발생
  • 에러를 찾아보면 다음과 같았다.


해결

  • 파일 업로드 할때는 pom.xml아파치 dependency를 추가하자...
<!-- pom.xml -->
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
	    <groupId>commons-fileupload</groupId>
	    <artifactId>commons-fileupload</artifactId>
	    <version>1.3.3</version>
</dependency>

좋은 웹페이지 즐겨찾기