-
[파일업로드] 이미지 업로드시 엑박오류, 이상한 경로에 C:\...(생략)\.metadata\.plugins\ 저장된다면?Spring 2023. 3. 5. 16:41반응형
1. 문제
ckeditorUpload 폴더에 에디터의 이미지파일을 업로드 시켰다. 업로드 경로는 당연히 프로젝트 내부 resource 폴더 하위 경로에 저장을 했다.
ex)C:\workspace\springProject\web\resources\ckeditorUpload
하지만 이렇게 업로드를 하게되면 image폴더에 사진이 업로드되는데 1~2초 시간이 경과되고 바로 해당 이미지를
view에서 바로 볼 수가 없다.(1~2초 뒤에 해당 이미지를 볼 수 있다는 의미)
이렇게 되면 에디터로 파일업로드 후 바로 미리보기할때 엑스박스가 나오는 현상이 발생한다.
이런 현상을 고치기위해 setTimeout()으로 비동기통신을 지연시키나 여러가지 방법이 있겠지만 옳은 방법은 아니다.
2.1 . 해결 (애초에 톰캣배포경로에 이미지를 업로드 시키기)
HttpServletRequest
req.getSession().getServletContext().getRealPath("\resources\ckeditorUpload"); 이 경로에 이미지를 업로드하면 지연없이 이미지를 바로 읽을 수 있다.
//위의 경로 결과 C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\springProject\resources\ckeditorUpload
위의 경로로 이미지를 업로드할 떄 바로 읽히는 이유는 이클립스 프로젝트를 톰캣 서버로 실행하게되면 해당프로젝트가 이 톰캣 경로에 배포가 된다. 그리고 해당 위치의 폴더를 기반으로 웹페이지를 구동한다. 이렇게되다보니 내가 설정한 이미지를 업로드 경로와 배포경로가 다르기 떄문에 이미지를 바로 읽을 수가 없는것이다.
<문제>
하지만 본인 프로젝트 내부에 업로드 폴더가 없으면 개발시 파일을 삭제하거나 업로드할때 컨트롤하기 어렵다.
2.2. 해결 (톰캣 서버 설정하기)
이클립스 Server탭에서 연결한 톰캣을 더블클릭하고 Serve modules without publishing 을 체크하고 서버를 재시작하면
내가 설정한 프로잭트내부 파일업로드 폴더에 이미지를 업로드해도 엑스박스없이 잘 읽어진다.
반응형'Spring' 카테고리의 다른 글
스프링 게시판 - ckeditor4 (ck에디터)연동 - 이미지업로드 (2) (0) 2023.03.25 스프링 게시판 - ckeditor4 (ck에디터)연동 - 기본적용 (1) (0) 2023.03.18 [Spring] 스프링 AOP를 이용해 트랜잭션(transaction) 처리하기 (0) 2022.06.27 [스프링] Spring Controller 컨트롤러 Ajax 데이터통신 유형 정리 (2) 2022.02.28 Spring 스프링 pom.xml 오류해결 cvc-elt.1.a: Cannot find the declaration of element 'project' (4) 2022.02.12