How to Zip files using JavaScript?

后端 未结 6 1470
不知归路
不知归路 2020-12-09 08:29

Is there a way to zip files using JavaScript?? For an example, like in Yahoo mail, when you chose to download all the attachments from an email, it gets zipped and downloade

6条回答
  •  佛祖请我去吃肉
    2020-12-09 08:54

    JSZip has been updated over the years. Now you can find it on its GitHub repo

    It can be used together with FileSaver.js

    You can install them using npm:

    npm install jszip --save
    npm install file-saver --save
    

    And then import and use them:

    import JSZip from 'jszip';
    import FileSaver from 'file-saver';
    
    let zip = new JSZip();
    zip.file("idlist.txt", `PMID:29651880\r\nPMID:29303721`);
    zip.generateAsync({type: "blob"}).then(function(content) {
      FileSaver.saveAs(content, "download.zip");
    });
    

    Then you will download a zip file called download.zip, once you've extracted it, and you can find inside a file called idlist.txt, which has got two lines:

    PMID:29651880
    PMID:29303721
    

    And for your reference, I tested with the following browsers, and all passed:

    • Firefox 59.0.2 (Windows 10)
    • Chrome 65.0.3325.181 (Windows 10)
    • Microsoft Edge 41.16299.371.0 (Windows 10)
    • Internet Explorer 11.0.60 (Windows 10)
    • Opera 52 (Mac OSX 10.13)
    • Safari 11 (Mac OSX 10.13)

提交回复
热议问题