본문 바로가기
프로그래밍/스프링프레임워크

CKEditor 한글 파일명 이미지 업로드 에러(Spring Framework)

by pentode 2018. 4. 20.

스프링 프레임웍에서 CKEditor에 한글 파일명의 이미지를 업로드 할때 다음과 같은 오류가 발생하는 경우 입니다.


업로드할 수 없는 확장자의 이미지를 업로드하였다는 메세지인데 실제 업로드한 이미지는 업로드 가능한 확장자를 가진 이미지일 경우 입니다.




로그를 확인해보니 한글 파일명이 깨져서 확장자를 판단하지 못해서 발생하는 에러입니다. 서블릿에서 POST 방식으로 보내진 데이터의 엔코딩을 지정하기 위해서는 request.setCharacterEncoding("utf-8"); 처럼 지정할 수 있습니다.


모든 서블릿에 매번 지정하게되면 중복된 코드를 계속 적어야 하므로 스프링 프레익웍에서는 엔코딩 필터를 제공합니다. 이 엔코딩 필터는 모든 다른 필터보다 먼저 나와야 전체에 적용이 됩니다.


CKEditor 이미지 업로드 URL도 필터에 적어 줍니다.


<filter>
	<filter-name>encodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>utf-8</param-value>
	</init-param>
</filter>

<filter-mapping>
	<filter-name>encodingFilter</filter-name>
	<url-pattern>*.do</url-pattern>
	<url-pattern>/ckupload</url-pattern>
</filter-mapping>


엔코딩 필터를 이미 추가해 두었지만 *.do 로 끝나는 URL에만 맵핑이 되어 있어서 CKEditor의 이미지 업로드 URL인 /ckupload 에는 캐릿터셋 변환이 동작하지 않았던 것입니다.

반응형