JSP提取Oracle中BLOB数据生成图片的问题 |
尚未結案
|
dsyyybw
一般會員 發表:16 回覆:24 積分:8 註冊:2003-01-02 發送簡訊給我 |
我的JSP页面从Oracle数据库中读取BLOB字段的数据生成一个图片文件,然后在网页中显示它。代码如下: <% SQL = "SELECT XP FROM TRJC02 where zgbh='" myZGBH "'"; ResultSet Recordset2 = myBean.executeQuery(SQL); boolean HavePhoto = Recordset2.next(); if(HavePhoto) { FileOutputStream file = null; byte[] bytes; bytes = Recordset2.getBytes(1); try { file = new FileOutputStream ("c:\\phtemp"); file.write(bytes); } catch (Exception e) { String err = e.toString(); System.out.println(err); } finally { if(file != null) { file.close(); } } %> [img]file:///c://phtemp"> <% } else { %> [img]../pic/d26.gif"> <% } %> 这段代码会读出数据后在客户端的 C:\下生成一个临时的“phtemp”文件,页面会显示该图片(照片), 我的服务器用的是TOMCAT4.1.2,自己本机显示正常,但是用其它计算机访问时,图片就显示不出来(在C盘根本就没有生成任何文件)。 我就不明白了,如果是JSP不能在客户端写文件的话,那我本机访问时也应该写不了文件才对。 本机访问方式如:“http://10.79.10.10/testphoto.jsp” 请教有经验的朋友,该如何解决这个问题。發表人 - dsyyybw 於 2003/12/01 17:14:49
------
读书永远也不晚 |
dsyyybw
一般會員 發表:16 回覆:24 積分:8 註冊:2003-01-02 發送簡訊給我 |
|
pipp
一般會員 發表:2 回覆:21 積分:9 註冊:2003-10-22 發送簡訊給我 |
首先先解釋一下,JSP (Java Server Page)是在伺服器端的程式,
所以你的java code都是在Server端執行,也就是你的圖片檔都是產生在
Server端C:,因此你在本機端執行 image src="c://xxx" 是沒有問題
由於圖片在Server端的C:,所以使用其他client瀏覽就會找不到了阿.. 如果你一定要這樣做,可以產生在tomcat的webapp路徑底下,
在HTML使用相對路徑表示 image src="../xxx.gif" 發表人 - pipp 於 2003/12/02 09:25:18
|
dsyyybw
一般會員 發表:16 回覆:24 積分:8 註冊:2003-01-02 發送簡訊給我 |
呵呵,我现在也正是这样解决的。不过中间又遇到了新的问题,在服务器端生成了图片,客户端调用,由于IE有网页缓存机制,导致在浏览第二个人的照片时还显示的第一个人的,这是因为生成的图片使用了相同的文件名,页面刷新后对于相同文件名的图片,客户端的临时文件夹中下载的有,所以就直接显示了出来,本来是微软用来提高网页浏览速度的技术,现在反而成了我的障碍。
在没有办法的情况下,我只好用随机数的方式每次生成不同文件名的图片,这样倒是可以用了。不过用户需要定时的删除服务器上的这些临时文件,以免占用太多的磁盘空间。 在此感谢 pipp 的热心回答。 读书永远也不晚 發表人 - dsyyybw 於 2003/12/03 17:17:16
------
读书永远也不晚 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |