Electron - 如何将base64 dataUrl保存到文件

时间:2017-10-23 14:42:33

标签: javascript node.js base64 electron

我正在使用现有的Electron项目(将Web应用程序转换为桌面应用程序),该项目的任务是将屏幕上的内容导出为pdf / png / jpg。

情况如下:

  1. 桌面应用程序纯粹是客户端代码,它不连接到任何API或服务器(以防您使用Nodejs服务器端代码建议解决方案)
  2. 我已经从canvas对象获取了dataUrl(它是文件的base64字符串)
  3. 如何将dataUrl保存到文件中(pdf / png / jpg)?

    以下是我尝试过的一些方法:

    1. 好旧的window.location = dataUrl(没有任何反应)
    2. 在div中创建一个表单,action = dataUrl,然后提交表单
    3. 两种方式都不起作用!

      非常感谢

1 个答案:

答案 0 :(得分:0)

要进行下载,需要将data URI的MIME类型更改为"application/octet-stream"



var dataURL = "data:text/plain,123";
var form = document.createElement("form");
form.action = dataURL.replace(/:[\w-/]+(?=,)/, ":application/octet-stream");
form.method = "GET";
document.body.appendChild(form);
form.submit();




<a>元素与download属性

一起使用

&#13;
&#13;
var dataURL = "data:text/plain,123";
var a = document.createElement("a");
a.download = "file";
a.href = dataURL;
document.body.appendChild(a);
a.click();
&#13;
&#13;
&#13;

另见How to download a file without using <a> element with download attribute or a server?