在我的网页应用程序中,我的一个页面正在将照片上传到路径
/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机器上,期望与照片共享相同的路径。
答案 0 :(得分:3)
这里有一个主要的误解。 HTML由Web浏览器执行,而不是由Web服务器执行。 webbrowser下载HTML,扫描需要下载的任何资源(CSS,脚本,图像等),并为每个资源激活新的HTTP请求。所有资源都应指向有效URL ,而不是指向客户端计算机没有概念的某些本地磁盘文件系统路径。
基本上有两种方法可以解决这个“问题”:
向Tomcat的Context
添加新的/conf/server.xml
:
<Context docBase="/usr/local/agent" path="/images" />
这样他们就可以通过http://example.com/images/访问了...您将能够使用以下<img>
<img src="/images/photo-name-here.jpg"/>
创建一个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
文件夹设置为参数化,这样您只需修改配置文件,而不是修改访问该本地路径的所有功能或方法。