AJAX能否读取数据库中的图片然后显示出来? AJAX能否读取数据库中的图片然后显示出来?谁能提供相应的servlet和页面,如果分不够跟我说!我不会吝惜分的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 文档类型不一样,不可能把字节码内容和文本内容放在一起吧image类型还是要用servlet/jsp读出来,设置文件输出类型 只知道ajax从后台读出来的结果集有responseText、responseXML,没听说读出图片的,望高人出现 文档类型就不一样,有responseBody,但是有什么用? 在jsp里<img src="getImage?id=xxx"/>在getImage 对应的servlet里byte[] buf = 假设你已经获取了byte数组res.setContentType("image/jpeg");out = res.getOutputStream();out.write(buf, 0, buf.length); out.close(); 我之前也认为不行,但看了楼上的,突然产生了一个想法,就是利用ajax ,把<form name="f1" action="XX" method="XX"><img src="getImage?id=xxx"/><!--src是提交给一个servlet的让这个servlet来处理图片的输出,像楼上那样--></form>添加到页面 图片肯定是用servlet输出来的,至于怎么样去调用那就是你那边的事了,就简单得很了。 这样肯定是没有问题的了我项目中就是这样处理的不需要ajax也可以实现 页面不刷新图片就是写不出来。<%@ page contentType="text/html; charset=GBK" %><html><head><title></title><script language="javascript"> var XMLHttpReq = false; function createXMLHttpRequest() { if(window.XMLHttpRequest) { XMLHttpReq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } } function sendRequest(url) { createXMLHttpRequest(); XMLHttpReq.open("GET", url, true); XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); } function processResponse() { if (XMLHttpReq.readyState == 4) { if (XMLHttpReq.status == 200) { var res=XMLHttpReq.responseXML.getElementsByTagName("pic")[0].firstChild.data; var p=document.getElementById("pic"); var pic=document.createElement("img"); p.appendChild(pic); p.src="picread?id="+res; } else { window.alert(""); } } } function picload() { sendRequest("pic"); }</script></head><body><span id="pic"></span><input type="button" onclick="picload();"><img src="picread?id=40288b0e149658900114965893770001"></body></html>下面用servlet直接显示就没有问题。用ajax就不行。看样页面不刷新就是不行。 图片的url请求本来就是异步的,所以没有必要用ajax来做。只用ajax把url请求的参数得到就行了,再直接用javascript把图片的url参数改掉即可。记得servlet生成的图片要记浏览器不得缓存,不然不会看到更新的效果。 域名访问 网站里的新闻内容包含文字与图片的穿插,怎么保存新闻内容为1个字段(oracle) Eclipse 启动tomcat时报错:Error occurred during initialization of VM 我开发struts遇到的问题 求比较好的JAVA代码保护方法(100分) 关于jsp页面内容删除后返回的问题,谢谢! 请问大虾!急等!!!!!!!!!!!!!(在线等待) 数据库连接问题(access),求助! Apache Tomcat/4.0.4能支持多少用户? 如何让下拉列表框可写,并实现这个效果 dwr 的问题 搜索引擎中的地图显示问题。
image类型还是要用servlet/jsp读出来,设置文件输出类型
<img src="getImage?id=xxx"/>在getImage 对应的servlet里byte[] buf = 假设你已经获取了byte数组
res.setContentType("image/jpeg");
out = res.getOutputStream();out.write(buf, 0, buf.length);
out.close();
<form name="f1" action="XX" method="XX">
<img src="getImage?id=xxx"/>
<!--src是提交给一个servlet的让这个servlet来处理图片的输出,像楼上那样-->
</form>
添加到页面
我项目中就是这样处理的
不需要ajax也可以实现
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title></title>
<script language="javascript">
var XMLHttpReq = false;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse; XMLHttpReq.send(null); }
function processResponse() {
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var res=XMLHttpReq.responseXML.getElementsByTagName("pic")[0].firstChild.data;
var p=document.getElementById("pic");
var pic=document.createElement("img");
p.appendChild(pic);
p.src="picread?id="+res;
} else {
window.alert("");
}
}
}
function picload() {
sendRequest("pic");
}
</script>
</head>
<body>
<span id="pic">
</span>
<input type="button" onclick="picload();">
<img src="picread?id=40288b0e149658900114965893770001">
</body>
</html>下面用servlet直接显示就没有问题。用ajax就不行。看样页面不刷新就是不行。
只用ajax把url请求的参数得到就行了,再直接用javascript把图片的url参数改掉即可。
记得servlet生成的图片要记浏览器不得缓存,不然不会看到更新的效果。