希望将客户端生成的二进制文件保存到客户端机器



我需要将一大组客户端生成的数据(二进制)保存到客户端系统中。我考虑过创建一个数据URI,但数据大小很大(一个应用程序生成的100多页的图像PDF文件)。除了数据URI之外,还有其他方法可以做到这一点吗?

谢谢!

如果你想开始下载,可以这样做:

  1. 如果要保存多个文件:请将其打包到zip文件中。我编写了一个基于dart的zip库(可在https://github.com/roberthartung/zip.dart)。他们的关键点是使用zip文件格式来归档数据,而不是压缩(因为这真的很慢)。

  2. 如果你只有一个文件(zip或任何其他格式),你可以把它加载到一个blob中,让用户下载这个blob,如下所示:

代码

Blob blob = new Blob(...);
AnchorElement a = new AnchorElement();
a.style.display = 'none';
document.body.append(a);
String url = Url.createObjectUrlFromBlob(blob);
a.href = url;
a.download = "file.name";
a.click();
Url.revokeObjectUrl(url);

仅对于chrome,有不推荐使用的FileSystem API,您可以使用它来保存持久数据,但我想您需要下载。

最新更新