一尘不染

查看上传的图片所需的正确路径是什么?

jsp

在我的Web应用程序中,我的页面之一是将照片上传到路径

/ usr / local / rac / picture-name-goes-here

照片上传正常,但是我需要在另一个页面中访问它,当我尝试从JSP访问它时,它不会显示,我猜我的照片路径不正确

我的JSP中用于访问照片的代码如下所示。

            <tr>
                <td>
                    <img src="/usr/local/agent/photo-name-here.jpg"/>
                </td>
            </tr>

我对这张照片的路径是否不正确?如果有帮助,我正在从目录中的Tomcat运行我的Web应用程序

C:\ Tomcat6

我最终将把它转移到Linux机器上,并期望与照片共享相同的路径。


阅读 738

收藏
2020-06-08

共1个答案

一尘不染

这里有一个主要的误解。HTML由网络浏览器而不是网络服务器执行。Web浏览器下载HTML,扫描还需要下载的任何资源(CSS,脚本,图像等),并为每个资源激发
一个新的HTTP请求 。所有资源都应指向 一个有效的URL ,而不是客户端计算机不知道的某些本地磁盘文件系统路径。

基本上有两种方法可以解决此“问题”:

  1. Context向Tomcat的添加新的 /conf/server.xml
    <Context docBase="/usr/local/agent" path="/images" />
    

这样,就可以通过http://example.com/images/
访问它们,并且您可以使用以下内容<img>

    <img src="/images/photo-name-here.jpg"/>
  1. 创建一个Servlet基本上获取InputStream图片的的OutputStream,然后沿着一组正确的标头将其写入响应的。您可以在此处找到此类servlet的基本示例,并在此处找到更高级的示例。当将Servlet映射到/images/*中时web.xml,可以通过http://example.com/contextname/images/ … 访问图像,并且您可以按以下方式使用它(假设JSP / HTML文件位于上下文根):
    <img src="images/photo-name-here.jpg"/>
    
2020-06-08