강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이현승님의 프로필 이미지
이현승

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

서블릿과 파일 업로드2

file.dir 파일경로 질문입니다.

작성

·

2.1K

0

[질문 내용]
저의 환경은 윈도우에 사용자명이 한글이라서
application.properties 에서

file.dir=C:/Users/이현승/Desktop/spring1/file/

이렇게 되어있습니다. 로그에서 한글을 띄우기 위해서 file -> settings -> file Encodings 에서 UTF-8로변경하여 한글을 뜨게 했습니다.

2022-11-22 21:11:11.567 INFO 136160 --- [nio-8080-exec-4] h.u.c.ServletUploadControllerV2 : 파일 저장 fullPath=C:/Users/이현승/Desktop/spring1/file/sea.jpg

2022-11-22 21:11:11.576 ERROR 136160 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: Cannot write uploaded file to disk!

그런데 경로 맨 뒤에 / (슬래시)를 붙이면 위에 처럼 오류가 납니다.

file.dir=C:/Users/이현승/Desktop/spring1/file

이렇게 / (슬래시)를 붙이지 않으면 아래처럼 폴더명에 파일명이 붙어서 저장이 되긴합니다.

2022-11-22 21:14:04.718 INFO 106284 --- [nio-8080-exec-2] h.u.c.ServletUploadControllerV2 : 파일 저장 fullPath=C:/Users/이현승/Desktop/spring1/filesea.jpg

2022-11-22 21:14:04.732 DEBUG 106284 --- [nio-8080-exec-2] o.a.coyote.http11.Http11InputBuffer : Before fill(): parsingHeader: [true], parsingRequestLine: [true], parsingRequestLinePhase: [0], parsingRequestLineStart: [0], byteBuffer.position(): [0], byteBuffer.limit(): [0], end: [919]

2022-11-22 21:14:04.733 DEBUG 106284 --- [nio-8080-exec-2] o.a.coyote.http11.Http11InputBuffer : Received []

2022-11-22 21:14:04.733 DEBUG 106284 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@1e8248e5:org.apache.tomcat.util.net.NioChannel@2d8bdb29:java.nio.channels.SocketChannel[connected local=/0:0:0:0:0:0:0:1:8080 remote=/0:0:0:0:0:0:0:1:63495]], Status in: [OPEN_READ], State out: [OPEN]

경로에 있는 한글 문제인가요? 어떻게 해결해야 할까요?

답변 1

0

안녕하세요. 이현승님, 공식 서포터즈 David입니다.

영문 경로로 변경하시거나 file 폴더를 만드신 후 해보시겠어요?

감사합니다.

이현승님의 프로필 이미지
이현승
질문자

해결했습니다. 감사합니다.

이현승님의 프로필 이미지
이현승

작성한 질문수

질문하기