知道图片文件的物理路径,如何显示在web页面上?

highscore2 2009-12-17 02:54:42
<img id="productimage" width=130 height=160 src="web1/images/temple.png"/>

这样可以显示一个图片文件,但如果我的图片文件不在web1项目下的images目录,而是web1项目之外的目录,比如:d:\docs\a.jpg

我想用img 元素显示 d:\docs\a.jpg 这个文件,jsp应该如何实现?
...全文
578 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
purple601 2010-03-12
  • 打赏
  • 举报
回复
呵呵呵
highscore2 2009-12-17
  • 打赏
  • 举报
回复
有些朋友似乎没看懂我的问题。 crazylaa 的 答案似乎是我想要的,谢谢,我有空试试行不行.
bayougeng 2009-12-17
  • 打赏
  • 举报
回复
要是这个可以实现的话,那我搞个网页,你只要访问我的网页,我就把你的机器上各种各样的密码文件hidden到form里,然后我不就很容易搞到n多密码了么?
luallen 2009-12-17
  • 打赏
  • 举报
回复
楼上正解
crazylaa 2009-12-17
  • 打赏
  • 举报
回复
配置个虚拟路径就ok:
1)打开tomcat安装目录下的conf目录中的server.xml文件,在最后的</Host>上面一行加入下面的一行:
<Context path="/myImgs" docBase="d:/docs" reloadable="true"/>
其中:d:/docs 对应你的文件存储路径。/myImgs对应你在浏览器里面要输入的虚拟路径。要注意不要让它与其他的项目的虚拟路径相同以免冲突。

2)如果tomcat是5.5及以上
打开tomcat安装目录下的conf目录中的web.xml文件,修改里面的参数:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
把这段代码中的第二行的false改为true就可以了。保存修改后的web.xml文件,退出该文件。
5.0及以下版本不需要改动。
3)页面上就可以用 <img src="http://localhost:8088/myImgs/login02.gif">
来访问该图片了。

注意:如果是eclipse(我的是jbuilder2007),由于它发布的路径可能不是配置的tomcat安装目录,
因此,你要修改的可能不是tomcat/conf目录下的那两个文件,而是:
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\conf
下的。其中 tmp1还是tmp0还是tmpN,由你发布的项目个数而定。

我已经这么弄成功了,楼主好运。
whut0802 2009-12-17
  • 打赏
  • 举报
回复
呵呵,奇怪,帮顶下
chollaflower 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 highscore2 的回复:]
引用 1 楼 yetaodiao 的回复:
为什么要这么做??


因为保存上传文件的目录放在项目外面,文件名及路径都保存在数据库中, 现在用户想在页面上直接看已经上传的图片文件, 难道必须把文件的目录放回到web项目之下?
[/Quote]
可以放在web项目之下,我也做过一个类似的图片上传的小项目,就是这么实现的。放在项目外是不能访问到的!
也可以放在数据库中。
longtenggdf 2009-12-17
  • 打赏
  • 举报
回复
必须放在项目路径下。
然后img 里面给相对路径就可以了。
2到20个英文 2009-12-17
  • 打赏
  • 举报
回复
项目中图片一般都是放在ftp服务器上滴

放在工程中的是一些不会改变的图标
Aniao 2009-12-17
  • 打赏
  • 举报
回复
你可以写个代理servlet去读那些文件然后用流的形式返回
highscore2 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yetaodiao 的回复:]
为什么要这么做??
[/Quote]

因为保存上传文件的目录放在项目外面,文件名及路径都保存在数据库中, 现在用户想在页面上直接看已经上传的图片文件, 难道必须把文件的目录放回到web项目之下?
sean1203 2009-12-17
  • 打赏
  • 举报
回复
一个web项目能引用的是项目下的文件
如果项目外的话没搞过
Aniao 2009-12-17
  • 打赏
  • 举报
回复
绝对不可能,这样的话有严重安全隐患。所以即使你里面是d:\docs\a.jpg ,那么客户看到的也只是自己电脑上的d:\docs\a.jpg 文件,而不是服务器上的,如果没有这种限制,那么整台服务器的所有资源都可以被别人通过一个浏览器所访问。


解决方法是你可以写一个servlet,把图片的地址改成/servlet/xxxx这样的地址,然后这个servlet就是负责读取图片并且以输出流的方式返回给用户
  • 打赏
  • 举报
回复
为什么要这么做??

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧