일주일을 해맸다. 정확히 말하면 5일.

결론을 얻은것 같았는데 다시 원점으로 돌아오기를 반복... 그래도 결국 답을 찾아냈다.

(스프링 버젼은 4.3, jdk는 1.8, tomcat은 8.0 버젼을 사용중임)


방법은 크게 두가지 이다.

하나는 servelt-context에 resourec 경로를 지정 하는 것

다른 하나는 reponseEntity로 응답 하는 것.


두개의 방법도 백단에서는 사실 문제가 안됬다.

문제가 된 부분은 jsp에서 보여줄때...


특히 첫번째 방법은 불가능 한줄 알았는데 가능하게 나와서 좀 놀랐다.


위에 처럼 리소스 경로를 등록해준다. 이거는 몰랐던게 아닌데 location이 다르다. file을 명시하고 뒤에 들어간다. 백슬래쉬가 3개라는 것도 포인트


그리고 다음은 위에 처럼 <spring:url value = '/image/파일명'/> 으로 불러온다. 이게 진짜 핵심..

이거를 이번에 구글링 하면서 처음 봤다. 위에서 /image는 결국 C:/test를 뜻한다. (실제로 경로와 파일이 있따)

** 그리고 spring을 사용 하려면 제일 위에 taglib을 설정해줘야한다.

<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> 


두번째 방법은 ResponseEntity이다.

실제로 카페에서 방법을 물어봤을때 두번째 방법을 사용하라고 하였다. 

크롬? 에서도 로컬 폴더에 접속하는 것을 원천적으로 막기 때문에 위에처럼 등록하고 사용해야 하는데, 아무래도 보안상의 이유때문에

두번째 방법을 선호하는 것 같다.


위 코드는 단순히 파일을 불러온다. 미리 등록해놓은 uploadpath를 통해서 경로를 확인 한 후에 있으면 맵으로 넣는다.


이 친구는 기존의 책에 있는 코드와 동일하다. 다만 requestParam으로 name을 받아와야 한다. 

<img src = "/display?name=${data.value.f_path}"/>

이렇게 사용해야 하기 때문

이러면 끝이다.


위 두방법으로 하면 아래처럼 사진이 나온다!!




자세한 코드는 깃헙에 올려두었다.


https://github.com/homekeeper89/friend_workout





+ Recent posts