【问题标题】:How to read files from Tomcat custom directory in Spring MVC web application如何从 Spring MVC Web 应用程序中的 Tomcat 自定义目录中读取文件
【发布时间】:2015-03-08 01:01:45
【问题描述】:

我有 Spring MVC 应用程序,在我的 JSP 中,我有一个表单,可以将文件上传到本地 Tomcat 服务器到目录“C:/apache-tomcat-7.0.56/photos”。

这是我的 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' />

但我想通过服务器 url 读取它。

编辑: 我无法将文件上传到我可以轻松读取文件的 webapp/resources 目录,但是当我重新部署应用程序时,文件被删除。

【问题讨论】:

标签: java spring jsp spring-mvc tomcat


【解决方案1】:

简单快捷的方法。

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

Tomcat 不能没有 CATALINA_HOME,所以我们可以在没有任何额外的配置文件或其他东西的情况下使用它。

【讨论】:

    【解决方案2】:

    您可以访问您的静态资源,就好像它们属于同一个 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 标签中:

    • &lt;img src="&lt;c:url value="/photos/photo1.jpg" /&gt;"&gt;
    • &lt;img src="${pageContext.request.contextPath}/photos/photo1.jpg"&gt;

    【讨论】:

      【解决方案3】:

      为了让 Tomcat 在浏览器中提供图像,它需要知道可以提供此目录中的文件。您需要更新 Web 服务器配置。有很多方法可以解决它。其中一些是:

      1. 在webapps目录下创建photos目录
      2. 在服务器某处创建目录并将配置文件添加到 /conf/Catalina/localhost 目录
      3. 创建一个控制器来读取文件并将其显示在浏览器中

      另见:New uploaded files and Tomcat?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-08
        • 2016-01-27
        • 1970-01-01
        • 2014-01-28
        • 2014-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多