1

我已经使用 spring MVC 文件上传功能上传了文件,并且文件正在上传到 /home/myfolder/images/ 文件夹中。现在我想从这个物理路径下载这些文件。为了在我的 jsp 中进行测试,我编写了以下行

   <a href="<%=request.getSession().getServletContext().getRealPath("/home/images/image.jpg")%>" >download </a>

但是当我单击此链接时,它会将我重定向到 URL

    http://localhost:8080/home/myfolder/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/home/images/image.jpg.

如何下载保存的图像。如果您还需要我解决此问题,请告诉我。

4

2 回答 2

4

尝试使用这个:

<!-- Handles HTTP GET requests for /resources/ ** by efficiently serving up static resources -->
<mvc:resources mapping="/images/**" location="file:/home/images"/>
<!-- Allows for mapping the DispatcherServlet to "/" by forwarding static resource requests to the container's default Servlet -->
<mvc:default-servlet-handler/>

在jsp中:

<img src="/images/image.jpg" />

这是线程:Spring:在上下文根之外提供静态资源

于 2012-09-02T07:16:31.777 回答
2

应用程序容器无法提供 Webapps 文件夹之外的文件。

一些可能性:

1) 上传到应用程序容器中 Webapps 文件夹下方的文件夹。例如。

鉴于您的 Webapps 文件夹是 /home/myfolder/Tomcat/webapps/myApp/ 您可以上传到 /home/myfolder/Tomcate/webapps/myApp/upload/

这样上传的文件可以由应用程序容器提供服务。

2)通过符号链接使应用程序容器可以访问上传文件夹。您可能需要更改容器的配置才能使其正常工作。

3)如果您在应用程序容器(如 httpd)前面使用网络服务器,则让网络服务器提供静态文件。

4) 编写您自己的 servlet,该 servlet 从任意文件读取并将内容提供给客户端。

于 2012-09-02T06:20:05.030 回答