Electron - 如何将base64数据URL保存到文件中

3

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

以下是情况:

  1. 桌面应用程序纯粹是客户端代码,它不连接任何 API 或服务器 (以防你建议使用 Node.js 服务器端代码的解决方案)
  2. 我已经从画布对象中获取了 dataUrl (它是文件的 base64 字符串)

我应该如何将 dataUrl 保存到文件 (pdf/png/jpg) 中呢?

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

  1. 使用旧的 window.location = dataUrl 方法 (没有任何反应)
  2. 在 div 中创建一个表单, action = dataUrl,然后提交表单

但两种方法都无效!

非常感谢您


{btsdaf} - guest271314
{btsdaf} - Ben Fortune
{btsdaf} - 0xh8h
1个回答

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();

使用带有download属性的<a>元素

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

另请参阅如何在不使用<a>元素和download属性或服务器的情况下下载文件?


{btsdaf} - 0xh8h
{btsdaf} - guest271314
{btsdaf} - 0xh8h

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接