2015-01-09 24 views
2

我已經獲得了Spring MVC應用程序,並且在我的JSP中我已經獲得了將文件上傳到我的本地Tomcat服務器到目錄「C:/ apache-tomcat -7.0.56 /照片」。如何在Spring MVC Web應用程序中讀取Tomcat自定義目錄中的文件

這裏是我的Tomcat的文件結構:

C:\ 
    apache-tomcat-7.0.56\ 
    bin\ 
    conf\ 
    lib\ 
    logs\ 
    photos\ <-- I WANT TO READ FILES FROM THAT FOLDER 
     photo1.jpg 
     photo2.jpg 
    temp\ 
    webapps\ 
     myapp\ <-- MY SPRING APPLICATION 
     resources\ 
     WEB-INF\ 

怎麼辦呢?我無法通過url'localhost:8080/photos'訪問它們。那些文件的url路徑是什麼?我知道我可以做到這一點絕對路徑到本地驅動器這樣的:

<img src='C:\apache-tomcat-7.0.56\photos\photo1.jpg' /> 

,但我想通過服務器鏈接來閱讀。

編輯: 我不能上傳文件到我的webapp /資源目錄從中我可以很容易地讀取文件,但是當我重新部署應用程序,文件被刪除。

+0

您可以創建一個單獨的網絡應用程序,您可以使用您的照片。如果需要,您的上下文定義可以使用crossContext屬性。看看http://tomcat.apache.org/tomcat-7.0-doc/config/context。html – rickz

+0

或者,您可以使用Servlet來提供圖像。看看http://stackoverflow.com/questions/4903762/serve-a-static-image-file-from-the-filesystem-in-a-servlet和http://stackoverflow.com/questions/8623709/output- an-image-file-from-a-servlet和http://balusc.blogspot.com/2007/04/imageservlet.html – rickz

回答

0

爲了使Tomcat在瀏覽器中提供圖片,需要知道該目錄中的文件可以被提供。您需要更新Web服務器配置。有很多方法可以解決它。其中一些是:

  1. 在webapps目錄下創建照片目錄
  2. 在服務器上創建目錄裏和配置文件添加到/ conf目錄/卡塔利娜/本地主機目錄
  3. 創建一個控制器,它會讀取文件,並顯示在瀏覽器中

也看到這一點:New uploaded files and Tomcat?

0

,就好像它們屬於同一個web應用程可以訪問您的靜態資源通貨膨脹。所有你需要的是訪問配置爲您的靜態資源,並在img標籤使用相對路徑:

  • 基於XML的配置

    基於
    <mvc:resources mapping="/photos/**" location="file:///c:/apache-tomcat-7.0.56/photos/" /> 
    
  • Java的配置

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
        registry.addResourceHandler("/css/**").addResourceLocations("/css/"); 
        registry.addResourceHandler("/js/**").addResourceLocations("/js/"); 
        registry.addResourceHandler("/photos/**").addResourceLocations("file:///C:/apache-tomcat-7.0.56/photos/"); 
    } 
    

並在您的img標記:

  • <img src="<c:url value="/photos/photo1.jpg" />">
  • <img src="${pageContext.request.contextPath}/photos/photo1.jpg">
0

方便,快捷的方式來做到這一點。

System.getenv("CATALINA_HOME") + "/webapps/your project name/images 

的Tomcat離不開CATALINA_HOME工作,所以我們可以使用它無需任何額外的配置文件或別的東西。

相關問題