老套的jsp图片问题

youhere1 2008-07-11 01:58:01
刚刚碰到了一个问题,就是在jsp中显示一个图片,这个图片在
d盘下,需要根据传入的值来动态的确定到底是哪个图片。
但是jsp却显示不了这个图片,图片文件夹在系统根目录下。
google了好长时间,都异口同声的说<img src="d:/xxx/xxx.jpg"></img>就ok了,
但我始终都不行。如果换成html完全可以,但在jsp就显示不了。
不知道各位大侠是如何做的。

另,图片文件夹经理要求不能放在项目下,只能在项目所在的根目录下。
还有图片名要求用中文,这个也是处理不了。只能求救了。
...全文
198 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
gannbatte 2008-07-15
  • 打赏
  • 举报
回复
日本MM,绝对日本MM
youhere1 2008-07-15
  • 打赏
  • 举报
回复
最后的解决方法还是放到项目下了,没办法,时间太紧了.
不过看到各位大侠的方法,觉得有空闲的话还是用servelt去做.
这样方便点.谢谢各位了.

另,这个mm是中国制造.
s74110s 2008-07-12
  • 打赏
  • 举报
回复
D盘是你打开Ie的那台机子的D盘吧。。。不要搞错了
vtudiv 2008-07-12
  • 打赏
  • 举报
回复
直接写src="d:\"是访问的客户端的D盘,你可以在自己的D盘下放张图片试试.
正确做法楼上的几位前辈都提供了,用SERVLET做.
brz97 2008-07-12
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 yetaodiao 的回复:]
<%
String path = request.getContextPath();
%>
<img src=" <%=path%>/images/name.jpg"> </img>
如图片显示不出,可在网页上右击,属性,查看图片地址是否正确
[/Quote]

可行
另外,搂住如果使用了中文图片名,别忘了jsp的url中文乱码问题
  • 打赏
  • 举报
回复
<%
String path = request.getContextPath();
%>
<img src=" <%=path%>/images/name.jpg"> </img>
如图片显示不出,可在网页上右击,属性,查看图片地址是否正确
sagezk 2008-07-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 youhere1 的帖子:]
刚刚碰到了一个问题,就是在jsp中显示一个图片,这个图片在
d盘下,需要根据传入的值来动态的确定到底是哪个图片。
但是jsp却显示不了这个图片,图片文件夹在系统根目录下。
google了好长时间,都异口同声的说 <img src="d:/xxx/xxx.jpg"> </img>就ok了,
但我始终都不行。如果换成html完全可以,但在jsp就显示不了。
不知道各位大侠是如何做的。

另,图片文件夹经理要求不能放在项目下,只能在项目所在的根目录下…
[/Quote]

才弄明白,楼主把 JSP 页扔到服务器上,然后 <img src="d:/xxx/xxx.jpg"></img>img标签不用加结束标签,那客户端浏览器访问到你的 JSP 页面后会按 src 的路径到自己机器上找这个图片,而图片在服务器上,这样能找到就出鬼了。
sagezk 2008-07-12
  • 打赏
  • 举报
回复
20楼的
<IMG SRC="C:\\Documents and Settings\\All Users\\Documents\\My Pictures\\示例图片\\Sunset.jpg" >

啥意思,你当是在 Java 中写字符串吗?HTML 代码不需要转移化表示 \ !!!
hbwhwang 2008-07-12
  • 打赏
  • 举报
回复
如果客户端的浏览器能直接访问服务器的绝对路径,那服务器就完蛋了。
不要幻想用d:/xxx/xxx.jpg file:///d:/xxx/xxx.jpg之类的方法了,不靠谱。

思路是做个SERVLET,客户端可以通过 http://www.xxx.com/servletname?jpgname=xxxx.jpg来访问。
servlet从参数解析出文件名,然后到本地盘读取该文件,再用图片文件的模式传回给客户端
rascalboy520 2008-07-12
  • 打赏
  • 举报
回复

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
This is my JSP page. <br>
<IMG SRC="C:\\Documents and Settings\\All Users\\Documents\\My Pictures\\示例图片\\Sunset.jpg" >
</body>
</html>

sagezk 2008-07-12
  • 打赏
  • 举报
回复
实在不行自己写个 Servlet 用 InputStream 读取图片数据,然后发往客户端,记得把 ContentType 设成 image/jpg 或 image/gif 等等。
南南北北 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wdman 的回复:]
稍微有点麻烦,说个思路吧
<img src="/app/downloadPic.do?picName=xxxx" width="400" height="240">
然后自己写个action,比如叫DownloadPic.java,在里面读d:/xxx/xxx.jpg的内容,
然后写到response中去就可以了。
楼主头像貌似一个日本MM。

[/Quote]

public String getPicture() throws IOException {
HttpServletRequest request = ServletActionContext.getRequest();
String root = commonService.getUploadPathRoot();
String dir = request.getParameter("dir");
String fileName = request.getParameter("fileName");
HttpServletResponse res = ServletActionContext.getResponse();
String path = root + File.separatorChar + dir + File.separatorChar
+ fileName;
File Fdir = new File(commonService.getUploadPathRoot() + File.separator
+ dir);
if (!Fdir.exists()) {
path = root + File.separatorChar + "Forum" + File.separatorChar
+ "Photo" + File.separatorChar + "DefaultPhoto.gif";
}
try {
FileInputStream hFile = new FileInputStream(path); // 以byte流的方式打开文件
int i = hFile.available(); // 得到文件大小
byte data[] = new byte[i];
hFile.read(data); // 读数据
hFile.close();
res.setContentType("image/*"); // 设置返回的文件类型
OutputStream toClient = res.getOutputStream(); // 得到向客户端输出二进制数据的对象
toClient.write(data); // 输出数据
toClient.close();
} catch (IOException e) // 错误处理
{
PrintWriter toClient = res.getWriter(); // 得到向客户端输出文本的对象
res.setContentType("text/html;charset=gb2312");
toClient.write("无法打开图片!");
toClient.close();
}
return null;
}
wdman 2008-07-11
  • 打赏
  • 举报
回复
稍微有点麻烦,说个思路吧
<img src="/app/downloadPic.do?picName=xxxx" width="400" height="240">
然后自己写个action,比如叫DownloadPic.java,在里面读d:/xxx/xxx.jpg的内容,
然后写到response中去就可以了。
楼主头像貌似一个日本MM。
UNIVERSIAL_1985 2008-07-11
  • 打赏
  • 举报
回复

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>图片显示</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<img src="file:///E:\images\878.jpg" width="400" height="240">
</body>
</html>
UNIVERSIAL_1985 2008-07-11
  • 打赏
  • 举报
回复

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>图片显示</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<img src="file:///E:\images\878.jpg" width="400" height="240">
</body>
</html>
forgetlove 2008-07-11
  • 打赏
  • 举报
回复
2楼说的对````
anxingyu_1984 2008-07-11
  • 打赏
  • 举报
回复
1、图片问题
<%
String path = request.getContextPath();
%>
<img src="<%=path%>/images/name.jpg"></img>
如图片显示不出,可在网页上右击,属性,查看图片地址是否正确
2、中文可能是页面编码设置问题
<%@ page contentType="text/html; charset=UTF-8" %>
3、图片放到根下更容易找些
bao516bao 2008-07-11
  • 打赏
  • 举报
回复
JerryBeckF 2008-07-11
  • 打赏
  • 举报
回复
<IMG SRC="FILE://C:\Documents and Settings\heays\桌面\2.jpg" >
arrow_1980 2008-07-11
  • 打赏
  • 举报
回复
有些浏览器鉴于安全性不支持访问客户端本地的文件,比如客户端用苹果的safari浏览器选择一个图片时用src=“d:/aa.jpg”就显示不出来l
加载更多回复(4)

62,615

社区成员

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

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