javascript 处理回传的二进制图像并显示在html上 100

restAPI的response是binary的image(png),现在需要把这段2进制data处理下显示在html上。比如转成base64string,这样在html... restAPI的response 是binary的image (png), 现在需要把这段2进制data处理下显示在html上。
比如转成base 64 string, 这样在html的img 的属性 src 写成 "data:image/png;base64," + base64encoded 就可以显示了。或者转成任何其他形式的数据,只要src 能认出来就可以。
环境是: nodejs+angularjs+express.....
展开
 我来答
育知同创教育
2016-02-10 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

1. 发起请求页面 //ImageClient.jsp

<%@ page language="java" pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE>ImageRequest</TITLE>

</HEAD>

<BODY>

<img src="http://127.0.0.1:8080/ImageServer.jsp"/>

</BODY>

</HTML>

2. 接受请求并返回结果页 //ImageServer.jsp

<%@ page language="java" pageEncoding="ISO-8859-1"%>

<%@ page import="java.io.*"%>

<%

        System.out.print("enter...");

        String filePath = "C:/Program Files/Tomcat/Tomcat-7.0.4/webapps/ROOT/ericsson.gif";

File file = new File(filePath);

InputStream fis;

try {

fis = new FileInputStream(file);

byte[] buf=new byte[(int)fis.available()];

fis.read(buf);

response.setContentType("application/binary;charset=ISO8859_1");

            OutputStream outs = response.getOutputStream();

            outs.write(buf);

            outs.flush();

            out.clear();

            out = pageContext.pushBody();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

%>

3. 测试结果

dksnear
2015-04-11 · TA获得超过1211个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:621万
展开全部

HTML代码:

<div id="forAppend" class="demo"></div>


JS代码:

var eleAppend = document.getElementById("forAppend");
window.URL = window.URL || window.webkitURL;
if (typeof history.pushState == "function") {
    var xhr = new XMLHttpRequest();    
    xhr.open("get", "/image/study/s/s256/mm1.jpg", true);
    xhr.responseType = "blob";
    xhr.onload = function() {
        if (this.status == 200) {
            var blob = this.response;
            var img = document.createElement("img");
            img.onload = function(e) {
              window.URL.revokeObjectURL(img.src); // 清除释放
            };
            img.src = window.URL.createObjectURL(blob);
            eleAppend.appendChild(img);    
        }
    }
    xhr.send();
} else {
    eleAppend.innerHTML = '<p style="color:#cd0000;">浏览器不给力,还是早点回去给孩子喂奶吧~</p>';    
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love三毛2012
2015-04-10 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:28.3万
展开全部
js好像转不了,传回后台转吧(用别的语言)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b0a6438
2015-04-10 · TA获得超过599个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:119万
展开全部
纯粹JavaScript实现不了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式