Ajax 输出 图片(二进制流)问题
后台获取并输出流到页面 ,在该页面可以实现展现图片。。。
C# code
byte[] tempInfo=new LogicHR.model.archive().existsFiled(this.Request.QueryString["userId"],this.Request.QueryString["info"]);
this.Response.ContentType="image/JPEG";
this.Response.BinaryWrite(tempInfo);
this.Response.Flush();
// this.Response.Write("测试");
this.Response.Clear();
this.Response.End();
如何 利用 Ajax 来实现输出?会的不会的都来看看
------解决方案--------------------占了一楼不好意思,如果是后台输出可以帮你忙。Ajax 不熟悉,我新手
------解决方案--------------------ajax 没办法,要用iframe 来做
------解决方案--------------------
------解决方案--------------------没有特殊要求的话,用Flash展示图片也可以的,或者干脆做一个Activex
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------$("wicho").innerHTML="<img src='img.ashx?url=' />"
為什么不這樣
------解决方案--------------------ajax是无法传输二进制数据的
------解决方案--------------------楼主怎么实现的?学习学习呗。
------解决方案--------------------
------解决方案--------------------ajax你可以输出Base64格式,ie8+非IE浏览器都支持了
------解决方案--------------------那个Ext JS可以做 你试试这个
------解决方案--------------------<img src="xxx.aspx?id=xx" />
这样不是也能满足需求吗?你可以在后台写你的逻辑控制,最后输出二进制图片流。前台通过 JS 改变参数,就可以输出一幅新的图片,并且,这也不会去刷新页面,除了原理之外,这跟 Ajax 请求有什么区别吗?
------解决方案--------------------<img id="imgCode" src="VerificationHandler.ashx" alt="验证码" />
$("#imgCode").click(function() {
$(this).attr("src", "VerificationHandler.ashx?" + Math.random());
});
就这样做做地啊
------解决方案--------------------好吧,我承认我是来学习的
------解决方案--------------------关键是lz把实现的代码贴上 让膜拜一下呗 看完还是一头雾水的帖子太纠结了
------解决方案--------------------直接一个<img src="路径" alt="">就可以啦,没必要用ajax啊。img标签就有异步加载的效果了
------解决方案--------------------~~~学习~~~~学习
------解决方案--------------------乱猜的阿
C# code
byte[] tempInfo=new LogicHR.model.archive().existsFiled(this.Request.QueryString["userId"],this.Request.QueryString["info"]);
//是不是byte[] 数组长度过长 而没有数据的位置被控制所代替
比如说byte[] bys = new byte[1024*1024*2];
2MB的byte 我实际存储的数据不到 2MB 剩余的部分Response的话(空)也会输出,导致图片受影响