我需要将大量客户端生成的数据(二进制)保存到客户端系统。我查看了创建数据URI,但数据量很大(应用程序生成的图像PDF文件超过100页)。除了数据URI之外还有其他方法吗?
谢谢!
答案 0 :(得分:2)
如果您想开始下载,可以采用这种方式:
如果要保存多个文件:将其打包为zip文件。我写了一个基于dart的zip库(可在https://github.com/roberthartung/zip.dart获得)。他们的关键点是使用zip文件格式来存档数据而不是压缩(因为这非常慢)。
如果您只有一个文件(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,您可以使用它来保存持久数据,但我想您想要下载。