Rog*_*son 6 javascript base64 mime-types phantomjs
有什么方法可以将PhantomJS网络服务器的结果作为二进制文件返回?
更具体地说,如果我将页面的屏幕截图呈现为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();
Run Code Online (Sandbox Code Playgroud)
想法?
您可以将编码设置为二进制,它将起作用:
response.statusCode = 200;
response.headers = {
'Cache': 'no-cache',
'Content-Type': 'image/png'
};
response.setEncoding('binary');
response.write(atob(page.renderBase64('png')));
response.close();
Run Code Online (Sandbox Code Playgroud)
解决方案是在webserver模块和网页模块内的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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3314 次 |
| 最近记录: |