从phantomjs Web服务器返回二进制结果
Return binary result from phantomjs webserver
有没有办法以二进制形式从PhantomJS Web服务器返回结果?
更具体地说,如果我将页面的屏幕截图渲染为base64,那么我可以将这个base64字符串转换为二进制并返回它,以便客户端将其作为图像接收吗?
这就是我到目前为止所做的,我已经评论了我的一些实验,这些实验显然不起的作用
response.statusCode = 200;
response.setHeader("Content-Type", "image/png");
//response.setHeader("Content-Encoding","base64");
var base64 = page.renderBase64('png');
//var binary=atob(base64,"b");
response.write(base64 );
response.close();
想法?
您只需将Encoding设置为binary,它就会工作:
response.statusCode = 200;
response.headers = {
'Cache': 'no-cache',
'Content-Type': 'image/png'
};
response.setEncoding('binary');
response.write(atob(page.renderBase64('png')));
response.close();
解决方案是在web服务器模块中使用二进制编码,在网页模块中使用page.evaluate来生成二进制内容。
结果是这样的(假设定义了页面):
response.statusCode = 200;
response.setEncoding("binary");
response.setHeader("Content-Type", "image/png");
var base64 = page.renderBase64('png');
var binary = page.evaluate(function (data) { return atob(data, "b");}, base64);
response.write(binary)
response.close();
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何将PDF作为二进制文件传递到window.open()
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何将字母转换为二进制代码
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 使用Ajax的Phonegap发送图像的结果是[Object ArrayBuffer],而不是二进制
- JavaScript在sha512中加密,并在原始二进制数据中获得结果,如PHP hash()
- JavaScript实现的打印二进制树的左视图返回错误的结果
- 从phantomjs Web服务器返回二进制结果