使用jszip

时间:2017-07-19 13:02:22

标签: javascript pdf zip jszip

我不明白如何正确使用jsZip .. 我正在尝试从localhost中的文件夹中获取文件,然后将其压缩,最后将压缩文件保存在同一文件夹中...

但实际上我并没有很好的理解如何使用它

这里我做了什么:

        JSZipUtils.getBinaryContent("http://localhost:8100/pdf/test.pdf", function (err, data) {
      if(err) {
          alert('err');
          throw err;
      }
      else{
        zip.file("test.pdf",data,{binary:true})
        .then(function (blob) {
            saveAs(blob, "pdf.zip");
        });
      }  
    });

anibody可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

以下一些代码最终为我工作。

注意,这适用于jszip utils版本3.它需要filesaver.js才能使saveAs调用工作(https://github.com/eligrey/FileSaver.js)。

这是我的代码:

function create_zip(){
    // get checked file urls
    var urls = Array();
    $("input:checked").each(function () {
        urls.push($(this).siblings('a').attr('href'));
    })
console.log(urls);

    var zip = new JSZip();
    var count = 0;
    var zipFilename = "archive.zip";

    urls.forEach(function(url){
      var filename = url.substr(url.lastIndexOf("/")+1);
console.log(filename);
      // loading a file and add it in a zip file
      JSZipUtils.getBinaryContent(url, function (err, data) {
         if(err) {
            throw err; // or handle the error
         }
         zip.file(filename, data, {binary:true});
         count++;

        if (count == urls.length) {
           zip.generateAsync({type:'blob'}).then(function(content) {
              saveAs(content, zipFilename);
           });
        }
      });
    });
};

这是根据以下信息改编的:https://gist.github.com/noelvo/4502eea719f83270c8e9

希望它有所帮助!

答案 1 :(得分:0)

 var zip = new JSZip();
    JSZipUtils.getBinaryContent(url, function (err, data) {
      if(err) {
          alert('err');
          throw err;
      }
      else{
        zip.file("test.csv",data,{binary:true});
        zip.generateAsync({ type: "Blob" }).then(function (content) {
        fsaver.saveAs(content, "example.zip");
    });
      }  
    });

尝试此角度。这是一个CSV文件。给出url作为csv文件的路径。