javascript - 如何使用 FileSaver.js 生成和保存空 zip

javascript - how to generate and save empty zip with FileSaver.js

我正在尝试在 Chrome 浏览器中使用 FileSaver.js 生成并保存空 zip。

saveAs(new Blob([], {type:  "application/zip"}), "empty.zip");

它要求我将 "empty.zip" 保存到磁盘上。

文件创建正常(0 字节)

我可以将文件拖放到 Windows 资源管理器中。

但是 7-zip 打不开

我应该传递什么作为 Blob 内容参数而不是空数组 [] 以获得正确的 zip?

空 zip 文件不是空文件:它需要一个 "end of central directory record" 列表 0 条目(参见 4.3.16 End of central directory record 参考)。尽管如此,一些工具还是会抱怨 zip 文件是空的。我现在无法测试 7zip,您可能会遇到这种情况。

如果你不想加载一个 zip 库只是为了生成这个空的 zip 文件,你可以写下 22 个字节:

var buffer = new Uint8Array([ 80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]).buffer;
var blob = new Blob([buffer], {type:  "application/zip"});