2012-12-17 2 views
0

지금까지 이미지를 webapp 디렉토리에 저장하고 데이터베이스의 경로를 저장했습니다.Struts2 : webapp 외부에서 이미지를 저장하고 db에 경로를 저장하는 방법은 무엇입니까?

하지만 이제는 내 새 war 파일을 배포하면 내 files 폴더가 삭제되지 않도록 webapp 외부에서 이미지를 저장하려고합니다.

내 아래 코드에서 내 이미지 파일이 webapp 외부의 지정된 폴더에 올바르게 저장되어 있지만 jsp 페이지로 이미지를 검색하는 방법을 알지 못합니다.

나는이

<img src="www.myproject.com/struts2project/files/smile.jpg/>" 

같은 시도하지만, 이것은 잘못된 것입니다. 내 이미지가 내 JSP 페이지에 표시되지 않습니다.

아래 코드는 절대 경로로 이미지를 업로드하는 데는 문제가 없지만 내 문제는 이미지를 검색하는 방법입니다. 친절하게 도와

`fileSystemPath= "/files"; 
     try{     
      File destFile = new File(fileSystemPath, thempicFileName); 
       FileUtils.copyFile(thempic, destFile); 
       String path=fileSystemPath+"/"+thempicFileName; 
       theme=dao.getThemeById(themId); 
       theme.setThemeScreenshot(path); 
       theme.setThemeName(theme.getThemeName()); 
       theme.setThemeCaption(theme.getThemeCaption()); 
       dao.saveOrUpdateTheme(theme); 

     }catch(IOException e){ 
      e.printStackTrace(); 
      return INPUT; 
     }` 

...

나는 내가 필요에 분명히 존재하고있어 희망, 내가 아니라고 경우 알려 주시면 다른 방법으로 설명하려고합니다. 이미 절대 경로를 사용하는

답변

0

, 그냥 외부 웹 응용 프로그램의 위치를 ​​사용

String destinationDir = "/path/to/my/directory/"; 
File file = new File(destinationDir + item.getName()); 
+0

이것은 괜찮습니다. 내 이미지는 webapp 폴더 외부에서 올바르게 삽입되지만 어떻게하면 jsp 페이지에 표시 할 이미지 경로를 반복 할 수 있습니까? '' –

+0

이미지가 애플리케이션 서버 (Tomcat 또는 기타)에 의해 제공 될 것인지 또는 웹 서버에서 정적으로 서비스 될 것인지 결정해야합니다. 그 스트럿츠와 아무 상관이 – leonbloy

+0

내가 대답 의이 유형을 찾고 있는데요 http://stackoverflow.com/questions/1812244/simplest-way-to-serve-static-data-from-outside-the-application-server- in-a-java –

1

당신이 말하는 것처럼. . . this question은 수행해야 할 작업을 설명합니다. 당신이 알아야 할 것은 스트럿츠 2를 사용하여이를 가장 잘 수행하는 방법입니다. 여기에있는 일이 있습니다. 태그에서

:

URL이 스트럿츠 2 응용 프로그램에 전달되고 있음. 옳은? 컨텍스트는 "struts2project"입니다.
참조 된 질문에서 제공하는 솔루션 중 하나는 정적 요청을 제공하고 이미지를 보유하는이 다른 문서 루트에 대해 알려주도록 Tomcat을 구성하는 Tomcat의 기능을 사용하는 것입니다. 나는 이것이 훌륭한 해결책이라고 생각한다.

struts2 내부에 보관하려면 가장 좋은 방법은 이미지에 InputStream을 가져온 Struts2 Stream Result 결과 유형을 사용하는 전용 "다른 위치에서 이미지 스트리밍"작업을 사용하는 것입니다 . 이 결과 유형을 사용하면 adhoc InputStream을 지정할 수 있습니다. 또한 적절한 헤더를 설정하는 데 도움이됩니다. 해당 문서 페이지의 머리글 값은 파일을 다운로드하는 데 사용되므로 해당 값을 원하지 않습니다. 그들은 브라우저가 이미지 대화 상자를 열도록 강요 할 것이라고 나는 생각한다.

+0

공유 서버에서 내 응용 프로그램을 호스팅 했습니까? 당신이 제안한 첫 번째 옵션에 갈 수 있습니까? 나는 공유 서버에서 tomcat'server.xml' 파일을 편집 할 수 있다고 생각하지 않습니다.->'참조 된 질문에서 제공하는 해결책 중 하나는 정적 요청을 제공하고 이미지를 보유하는이 다른 문서 루트에 대해 알려주도록 Tomcat을 구성하는 Tomcat의 기능을 사용하는 것입니다. –

+0

"공유 서버"란 무엇입니까? – chad

+0

자바 공유 웹 호스팅 –

관련 문제