【发布时间】:2013-11-10 12:10:27
【问题描述】:
我有一个 web 服务,它返回一个 byte[] 给客户端,以显示图像。
此图像存储在一个 json 对象中,见 fiddle:http://jsfiddle.net/FuGN8/
在我做了以下简单的一行之后,将数字数组分配给 result:
result = result["d"];
这是通过 AJAX 调用获取的,所以我想从这些数据中渲染图像。
当然,做类似的事情:
$("img#mytag").attr("src", result);
不会做我想做的。
是否有一个 javascript 命令可以执行我想要的操作?
我更改为执行的服务器端代码:
WebClient wsb = new WebClient();
string url = "...";
byte[] resp = wsb.DownloadData(url);
UTF8Encoding enc = new UTF8Encoding();
return enc.GetString(resp);
但在客户端,由于我不知道图像类型是什么,我正在尝试:
src="data:image/*;base64,"+RET_VAL
它什么也没做。在类似的说明中,我也尝试过:
src="data:image;base64,"+RET_VAL
由于上面是做UTF8编码的,所以我还加了如下:
src:"data:image;base64,"+window.btoa(unescape(encodeURIComponent( RET_VAL )))
【问题讨论】:
-
你可以控制这个网络服务代码吗?
-
是的,虽然我正在转发做类似的事情:WebClient wsb = new WebClient(); wsb.Headers.Add("授权", token);返回 wsb.DownloadData([url]);返回一个字节[]给客户端
-
如果您将字节数组转换为 base64 字符串,您可以使用@Ramón 提到的数据 URI 方案。
-
rgr,让我看看我能做什么快点,我会更新。
标签: javascript jquery image