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

时间:2010-09-16 04:30:38

标签: java html jsp tomcat

在我的网页应用程序中,我的一个页面正在将照片上传到路径

/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机器上,期望与照片共享相同的路径。

2 个答案:

答案 0 :(得分:3)

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

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

  1. 向Tomcat的Context添加新的/conf/server.xml

    <Context docBase="/usr/local/agent" path="/images" />
    

    这样他们就可以通过http://example.com/images/访问了...您将能够使用以下<img>

    <img src="/images/photo-name-here.jpg"/>
    
  2. 创建一个Servlet,它基本上会获得图像的InputStream,并沿着正确的标头集将其写入响应的OutputStream。您可以找到here这样一个servlet的基本示例,here是一个更高级的示例。当Servlet映射到/images/*中的web.xml时,http://example.com/contextname/images/可以访问这些图片...您将能够按如下方式使用它(假设JSP / HTML文件位于上下文根目录中:

    <img src="images/photo-name-here.jpg"/>
    

答案 1 :(得分:1)

src="/usr/local/agent/photo-name-here.jpg"&lt; - 此网址是您服务器中的本地地址,用于显示您必须设置有效HTTP地址的图片,如:

http://www.yourdomain.com/images/photo-name-here.jpg

要完成此操作,您需要将照片上传到localpath根文件夹中的www

如果您的webapp已安装在

  • /home/apache/www/website/

您将图片上传到以下文件夹:

  • /home/apache/www/website/images/

然后您的HTTP地址将

  • http://www.yourdomain.com/images/photo-name-here.jpg

我对/usr/C:\Tomcat

中的两条路径感到有些困惑

我建议您将上传localpath文件夹设置为参数化,这样您只需修改配置文件,而不是修改访问该本地路径的所有功能或方法。