본문 바로가기

JAVA

전자정부 프레임워크 파일 프로젝트 외부에 업로드후 static으로 바로 접근하기

반응형

 

전자정부 프레임워크에서 파일 업로드후 프로젝트 외부에 저장 하고나서 파일을 불러올때는 static으로 바로 접근하고 싶음

 

즉 업로드후 <img src="~~~"> 이렇게 Controller 를 통한 톰켓 말고 아파치 웹서버로 바로 접근하고 싶음

 

여러 방법을 찾아본 결과 servlet-contex.xml 또는 dispatcher-servlet.xml에서 <mvc:resource> 태그를 써서 해결하라고 되어 있었는데 적용해본 결과 잘 안됨

 

결론적으로 톰켓 server.xml 에 적용해야 static으로 접근 가능함 - 현재 전자정푸 프레임워크 레거시로 프로젝트 생성함

( server.xml 파일위치 샘플 : D:\work2\prj_jbfs\workspace\Servers\Tomcat v9.0 Server at localhost-config\server.xml )

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
	<!-- SingleSignOn valve, share authentication between web applications
		 Documentation at: /docs/config/valve.html -->
	<!--
	<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
	-->

	<!-- Access log processes all example.
		 Documentation at: /docs/config/valve.html
		 Note: The pattern used is equivalent to using pattern="common" -->
	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>

	<Context docBase="jbfs" path="/" reloadable="true" source="org.eclipse.jst.jee.server:jbfs"/>
	
	<!-- D:/workspace/upload 폴더를 /moviestar/upload 라는 URL로 접근하겠다는 의미        ex) D:/workspace/upload/file.png → http://localhost:8080/moviestar/upload/file.png -->
	<!-- https://byson.tistory.com/20 -->
	<Context docBase="E:/Temp/" path="/my" reloadable="true" />
</Host>

 

 

만일 프로젝트 static 폴더 내에 저장하고 싶은 경우는  request.getSession().getServletContext().getRealPath("/") 를 사용하면 된다. 그러면 디버깅시는 .metadata\.plugins\org.eclipse.wst.server.core 아래에 생성이 된다.

 

String dftFilePath = request.getSession().getServletContext().getRealPath("/"); //파일 기본경로  : D:\work2\prj_jbfs\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jbfs\

 

 

 

static 폴더에 바로 적용하고 접근하는 다른 방법은 properties에 넣어 놓고 하는것 - 링크 참조

[배포] SpringBoot 스프링부트 Tomcat 톰캣 배포시 파일업로드 경로 지정하기 :: Dev. MK (tistory.com)

 

[배포] SpringBoot 스프링부트 Tomcat 톰캣 배포시 파일업로드 경로 지정하기

스프링 부트에 파일 업로드 시 사용했던 경로는 아래와 같다. 부트의 설정파일 application.properties file.upload.directroy=C:/dev/workspace/spring-prj/src/main/resources/static/upload http://localhost/upload/test.png 접근은

devmg.tistory.com

 

 

 

 

 

 

톰켓 server.xm

 

 

E:\Temp 폴더 파일

 

웹 접속

 

 



참고 사이트

Hello World :: 파일 업로드 폴더 경로를 프로젝트 폴더 외부에 두기 (tistory.com)

 

파일 업로드 폴더 경로를 프로젝트 폴더 외부에 두기

전자정부프레임워크 프로젝트 도중 파일 업로드 폴더가 프로젝트 폴더 외부에 있어서 태그에서 이미지가 제대로 불러오지 못하는 에러가 발생했다. (Not allowed to load local resource) 이걸 해결하기

honinbo-world.tistory.com

[File upload] 파일 업로드 경로 프로젝트 외부에 두기 (tistory.com)  <-- 여기서 해결함

 

[File upload] 파일 업로드 경로 프로젝트 외부에 두기

● 에러 발생 포트폴리오 작업 중에 로컬에서 개발 서버로 war 파일을 배포 했음 그런데 업로드했던 이미지들이 엑스박스가 뜸 ● 에러 발생 원인 로컬에서 개발 서버로 배포 할 때, 개발 서버에

byson.tistory.com

Spring 이미지 외부 폴더로 업로드 후에 이미지 접근하기(불러오기) :: 호기심 많은 오리의 지식 저장소 (tistory.com)

 

Spring 이미지 외부 폴더로 업로드 후에 이미지 접근하기(불러오기)

이미지 업로드 후에 로컬에서 불러오려고 할 때, 안되는 경우가 있다. 특히 외부에 폴더를 지정했을 경우, 일반적인 방법으로는 업로드 한 이미지 폴더에 접근할 수 있는 방법이 없기때문에 톰

gdtbgl93.tistory.com

 

 

 

 

 

 

반응형