반응형

스프링웹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


반응형

+ Recent posts