zip a Blob with zip.js
zip a Blob with zip.js
我需要在WebSQl中存储大量文本,所以我决定用zip.js压缩文本并存储压缩后的Blobs。
在文档中,您可以按如下方式压缩blob:
function zipBlob(filename, blob, callback) {
// use a zip.BlobWriter object to write zipped data into a Blob object
zip.createWriter(new zip.BlobWriter("application/zip"), function(zipWriter) {
// use a BlobReader object to read the data stored into blob variable
zipWriter.add(filename, new zip.BlobReader(blob), function() {
// close the writer and calls callback function
zipWriter.close(callback);
});
}, onerror);
}
虽然这可以工作,我不明白为什么你需要指定一个文件名。这真的有必要吗?并且,这个文件在压缩后总是被删除吗?
检查这里的答案-它不需要文件名,我敢打赌它更容易使用。我已经尝试了很多javascript压缩/解压缩实现,并被诸如原始数据大小限制、整体速度、效率等问题所困扰。奇怪的是,很难在javascript中找到一个好的压缩/解压缩实现,但值得庆幸的是,这个还没有让我失望(我已经用过很多次了):
用javascript压缩blob
您目前的实现需要文件名,因为它试图与zip保持一致,以便您可以将其保存到桌面,并使用您最喜欢的zip实用程序打开它。这听起来像你的挑战是非常类似于我的,我需要保存和恢复压缩项目的本地存储在浏览器以及服务器上。
根据此实现,文件名是必需的。如果只是压缩数据,则没有必要这样做,但是zip.js构建的zip文件用于存储文件,这些文件必须有文件名。
在您的原始示例中,zipWriter.add()有效地将您的blob转换为新文件并将其添加到zip中-并且"filename"参数是您希望新文件具有的名称。
下面是一个使用zip.js将多个blob添加到zip文件中,然后使用filesver .js下载的示例:
function zipBlob() {
zip.createWriter(new zip.BlobWriter("application/zip"), function(writer) {
files = ["abcd", "123"];
var f = 0;
function nextFile(f) {
fblob = new Blob([files[f]], { type: "text/plain" });
writer.add("file"+f, new zip.BlobReader(fblob), function() {
// callback
f++;
if (f < files.length) {
nextFile(f);
} else close();
});
}
function close() {
// close the writer
writer.close(function(blob) {
// save with FileSaver.js
saveAs(blob, "example.zip");
});
}
nextFile(f);
}, onerror);
}
相关文章:
- zip.js读取zip中的文件名.(仅限客户端脚本)
- 使用 zip.js 通过 Node.js 上的 XMLHTTP/ajax 调用读取 zip 文件
- 如何通过admzip(node.js)查找zip中的文件数
- 从文件夹创建zip档案,并使用Node.js保存结构
- 如何使用zip.js将图像文件列表添加到zip文件中
- 使用JS window.open_self下载zip文件而不使用“;无用窗口”;
- 从以zip下载的捆绑包中加载UIWebview中的.js文件
- 如何使用zip.js将多个文件添加到一个zip中
- 如何在 node js 应用程序中压缩文件夹并在 zip 下载开始后
- 创建并发送Zip文件-NODE JS
- 使用node . js下载多个Zip文件
- 重命名zip文件后,我无法删除node.js中的文件夹
- 如何使用node.js从HTTP资源中提取ZIP文件
- Node.js读取zip中的文件而不解压缩它
- 如何在IE9及更低版本中下载由jszip.js创建的zip文件,而不使用基于flash的下载
- 使用http下载zip文件.打开node.js
- 使用fs和http模块下载Node.js的zip文件不工作
- HTML5 ondrop事件在zip.js完成操作之前返回
- zip a Blob with zip.js
- 在node.js中生成一个受密码保护的ZIP文件