Java 查看上传图像的正确路径是什么?
在我的web应用程序中,我的一个页面正在将照片上载到路径 /usr/local/rac/picture-name-goes-here /usr/local/rac/picture名称在这里 照片上传很好,但我需要在另一个页面中访问它,当我尝试从JSP访问它时,它不会显示,我猜我的照片路径不正确 我的JSP中访问照片的代码如下所示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="/
<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,而不是客户端计算机不知道的某个本地磁盘文件系统路径
解决这个“问题”基本上有两种方法:
/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"/>