日期:2014-05-18  浏览次数:20447 次

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 来做
------解决方案--------------------
探讨
ajax 没办法,要用iframe 来做

------解决方案--------------------
没有特殊要求的话,用Flash展示图片也可以的,或者干脆做一个Activex
------解决方案--------------------

------解决方案--------------------
探讨

ajax 没办法,要用iframe 来做

------解决方案--------------------
$("wicho").innerHTML="<img src='img.ashx?url=' />"
為什么不這樣

------解决方案--------------------
ajax是无法传输二进制数据的
------解决方案--------------------
楼主怎么实现的?学习学习呗。

------解决方案--------------------
探讨
引用:

引用:

ajax 没办法,要用iframe 来做

这个方法可以考虑一下,一般的AJAX返回到数据都是text,xml等文字格式的,比如JSON。图片是个2禁止文件,不是很好办。


不是不好办 只是没需求 ,没有什么不好办的
实现了 这个功能啦 等待 过 50楼 结贴

------解决方案--------------------
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的话(空)也会输出,导致图片受影响