我使用spring MVC文件上传功能上传文件,文件上传到/ home / myfolder / images /文件夹。现在我想从这个物理路径下载这些文件。为了在我的jsp中测试,我写了以下一行
<a href="<%=request.getSession().getServletContext().getRealPath("/home/images/image.jpg")%>" >download </a>
但是当我点击此链接时,它会将我重定向到网址
http://localhost:8080/home/myfolder/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myproject/home/images/image.jpg.
如何下载保存的图像。如果您还需要我解决此问题,请告诉我。
答案 0 :(得分: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 : serving static resources outside context root
答案 1 :(得分:2)
应用程序容器无法提供Webapps文件夹外的文件。
一些可能性:
1)上传到应用程序容器中Webapps文件夹下面的文件夹。 E. g。
鉴于您的Webapps文件夹是/ home / myfolder / Tomcat / webapps / myApp / 您可以上传到/ home / myfolder / Tomcate / webapps / myApp / upload /
这样,上传的文件可以由应用程序容器提供。
2)通过符号链接使应用程序容器可以访问上载文件夹。您可能需要更改容器的配置才能使其正常工作。
3)如果您在应用程序容器(如httpd)前使用Web服务器,请让Web服务器提供静态文件。
4)编写自己的servlet,从任意文件中读取并将内容提供给客户端。