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

时间:2016-11-15 22:37:08

标签: zip blob 7zip filesaver.js

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

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

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

正在创建

文件(0字节)

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

但是7-zip无法打开它

enter image description here

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

1 个答案:

答案 0 :(得分:1)

空的zip文件不是空文件:它需要一个列出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"});