我正在尝试使用Chrome浏览器中的FileSaver.js生成并保存空zip。
saveAs(new Blob([], {type: "application/zip"}), "empty.zip");
它要求我保存" empty.zip"在磁盘上。
正在创建文件(0字节)
我可以在Windows资源管理器中拖放文件。
但是7-zip无法打开它
我应该将什么作为Blob内容参数而不是空数组[]传递以获得正确的zip?
答案 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"});