Java 查看上传图像的正确路径是什么?

Java 查看上传图像的正确路径是什么?,java,html,jsp,tomcat,Java,Html,Jsp,Tomcat,在我的web应用程序中,我的一个页面正在将照片上载到路径 /usr/local/rac/picture-name-goes-here /usr/local/rac/picture名称在这里 照片上传很好,但我需要在另一个页面中访问它,当我尝试从JSP访问它时,它不会显示,我猜我的照片路径不正确 我的JSP中访问照片的代码如下所示 <tr> <td> <img src="/

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

/usr/local/rac/picture-name-goes-here /usr/local/rac/picture名称在这里 照片上传很好,但我需要在另一个页面中访问它,当我尝试从JSP访问它时,它不会显示,我猜我的照片路径不正确

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

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

我的照片路径不正确吗? 如果有帮助,我将从目录中的Tomcat运行我的web应用程序

C:\Tomcat6


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

src=“/usr/local/agent/photo name here.jpg”
这里有一个主要的误解。HTML由webbrowser执行,而不是由Web服务器执行。webbrowser下载HTML,扫描任何需要下载的资源(CSS、脚本、图像等),并为每个资源发出新的HTTP请求。所有资源都应该指向有效的URL,而不是客户端计算机不知道的某个本地磁盘文件系统路径

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

  • 在Tomcat的
    /conf/server.xml
    中添加一个新的
    上下文:

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

  • 您还可以使用Apache的
    Alias
    指令(如果您使用的是Apache),使文件系统上的任何特定文件夹都可以通过任何特定URL路径访问。(如果您没有使用Apache,那么您使用的任何服务器都可能有与此指令相当的版本。)即使我在/var/lib/tomcat6/webapps/myapp中运行我的web应用程序,这篇文章是否适用?我应该将这些文件本地上载到myapp吗?例如,您需要将图像上载到
    /var/lib/tomcat6/webapps/myapp/images/
    。并通过url访问它:
    http://mydomain/images/yourimage.jpg
    如果在部署应用程序后上载图像,将图像与web应用程序一起存储难道不是一种糟糕的做法吗?如果我需要重新部署应用程序,我将丢失上次部署后上载的所有映像。我不认为#1有任何缺点。这是最简单最好的方法。另一种方法确实是将它们直接存储在公共网络内容中,但您必须考虑到,每当您重新部署WAR时,它们都会丢失,并且这些文件不包括在新WAR中。等等,在您的问题中,您使用的是两种不同的路径,
    /usr/local/rac
    /usr/local/agent
    docBase
    属性必须指向真实的本地磁盘文件系统路径,
    path
    必须指定用作URL中“子文件夹”的上下文根名称。
    元素本身应该位于
    元素内部。你准备好了吗?我还阅读了
    /logs
    文件夹中的启动和错误日志,以了解任何信息和问题。关于
    的更多细节:它应该可以工作。您不是有多个Tomcat实例,并且正在编辑和/或启动错误的实例吗?docroot文件夹是否提供足够的读/写权限?顺便说一下,在每次编辑之后,您应该重新启动服务器,使更改生效。可以肯定的是,我刚刚在Tomcat 6.0.29和7.0.2上做了一个测试,它工作正常。不过,我正在运行Windows XP。JSP中的
    不是完全错误吗?通过直接在浏览器地址栏中输入完整的URL来测试它。它区分大小写。也许是一个案例错误?或者图像本身被破坏了?至少,它是有效的:)
    <img src="/images/photo-name-here.jpg"/>
    
    <img src="images/photo-name-here.jpg"/>