javascript - 如何使用 jszip 库压缩文件

标签 javascript jquery html jszip

我正在使用 HTML5 和移动版 jquery 开发离线应用程序。我想使用 jszip 从本地存储备份文件。下面是我所做的代码片段......

  if (localStorageKeys.length > 0) {
            for (var i = 0; i < localStorageKeys.length; i++) {
                var key = localStorageKeys[i];
                if (key.search(_instrumentId) != -1) {                  
                        var data = localStorage.getItem(localStorageKeys[i])
                        var zip = new JSZip();
                        zip.file(localStorageKeys[i] + ".txt", data);
                        var datafile = document.getElementById('backupData');
                        datafile.download = "DataFiles.zip";
                        datafile.href = window.URL.createObjectURL(zip.generate({ type: "blob" }));                        
                }
                else {

                }


            }

        }

在上面的代码中,循环遍历本地存储内容并以文本格式保存 ezch 文件。我面临的挑战是如何在 DataFiles.zip 中创建多个文本文件,因为目前我只能在压缩文件夹中创建一个文本文件。我是 javascript 的新手,所以我的问题没有任何歧义。 提前致谢。

最佳答案

继续调用 zip.file()

查看他们的 documentation page 中的示例(评论我的):

var zip = new JSZip();

// Add a text file with the contents "Hello World\n"
zip.file("Hello.txt", "Hello World\n");

// Add a another text file with the contents "Goodbye, cruel world\n"
zip.file("Goodbye.txt", "Goodbye, cruel world\n");

// Add a folder named "images"
var img = zip.folder("images");

// Add a file named "smile.gif" to that folder, from some Base64 data
img.file("smile.gif", imgData, {base64: true});

zip.generateAsync({type:"base64"}).then(function (content) {
     location.href="data:application/zip;base64," + content;
});

重要的是理解您编写的代码 - 了解每一行的作用。如果这样做,您会发现只需再次调用 zip.file() 即可添加另一个文件。

关于javascript - 如何使用 jszip 库压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17986432/

相关文章:

Javascript秒倒计时

javascript - 在成功调用之外使用通过 Ajax 加载的 XML 文件内容

javascript - 检查json数据的值

javascript - 使用innerHTML将<select>按钮插入HTML表

html - Css 下拉导航栏菜单

Javascript 文档.domain

Javascript 剪贴板 API write() 在 Safari 中不起作用

javascript - Vue.js 更新了计数钩子(Hook)

asp.net - 如果禁用了 javascript,则处理可扩展的 jQuery 内容

javascript - 如何使用 jquery 禁用特定元素上的滚动