Ko Ga
Ko Ga

Reputation: 906

Adding local file to zip

I'm trying to add a local file to the zip so when the user downloads and unzips, he'll get a folder with a .dll and a config.json file:

 var zip = new JSZip();

    options.forEach(option => {
        zip.folder("REST." + option + ".Connector")
           .file("config.json", "//config for " + option)

           // I want this file to be from a local directory within my project
           // eg. {dir}\custom_rest_connector_repository\src\dlls\Connectors.RestConnector.dll
           .file('../dlls/Connectors.RestConnector.dll', null);
    });

    zip.generateAsync({type:"blob"}).then(function (blob) { 
        FileSaver.saveAs(blob, "REST_Connectors_" 
        + dateStr
        + ".zip");
    });

I read through the JSZip documentation but couldn't find an example or any information whether this can actually be done. If it can't, is there any other more robust library that does support this operation?

Upvotes: 1

Views: 914

Answers (1)

Ko Ga
Ko Ga

Reputation: 906

Found the answer to my own question using the jszip-utils

JSZipUtils.getBinaryContent("../dlls/Connectors.RestConnector.dll", function (err, data) {
if(err) {
  throw err; // or handle the error
}
zip.file("../dlls/Connectors.RestConnector.dll", data, {binary:true});
});

Upvotes: 1

Related Questions