반응형
스프링웹mvc에서 자주 쓰는 기능 중 하나인 MultipartFile 의 transferTo 을 사용할 때 주의사항을 하나 공유하고자 합니다.
이 기능은 파일을 업로드 할 때 사용됩니다.
파일을 업로드하면 transferTo 를 통해서 실제 파일시스템에 쓰게(write) 됩니다.
그런데 Servlet 3.0 에서는 절대경로에 파일을 쓸수 없게 제한하고 있습니다. WAS의 지정된 임시 dir에서 상대 경로로만 업로드할 수 있습니다.
하지만 Tomcat에서는 이 부분을 절대경로도 허용해 주고 있습니다. 덕분에 혼란이 가중 된 건 누구 잘못일까요 ㅜㅜ.
Local 은 Tomcat에서 개발하고 테스트 후 Jeus에 배포를 했더니 파일이 계속 Jeus의 임시 디렉토리 하위에 들어갑니다.
한참을 삽질 후에 기술지원을 받고 나서야 이 사실을 알 수 있었습니다. Jeus는 스펙에 따른거라고 하니 Tomcat을 욕합니다.
아래는 transferTo 의 주석에 달린 Note 입니다. Tomcat에서 잘되어서 대충 본 제 잘못이 사실 제일 큽니다. ㅜㅜ
1 | Note: when using Servlet 3.0 multipart support you need to configure the location relative to which files will be copied as explained in javax.servlet.http.Part.write. | cs |
반응형
'java' 카테고리의 다른 글
java - outbound 포트 방화벽 확인을 위한 port listen 소스 (1) | 2017.09.26 |
---|---|
spring boot - @Scheduled Test (2) | 2017.09.19 |
netty - IoBuffer vs ChannelBuffer (0) | 2017.09.18 |
jdbc connection reset (0) | 2017.09.09 |
java - telnet 대신 포트 방화벽 확인하기 port check (2) | 2017.09.05 |
spring boot context path (0) | 2017.08.31 |
java - html img 태그 파싱 및 변환 (2) | 2017.08.30 |
java - list random shuffle (0) | 2017.08.23 |