2017-07-19 1 views
0

Je ne comprends pas comment utiliser correctement jsZip .. J'essaie d'obtenir un fichier à partir d'un dossier dans localhost puis le compresser et enfin enregistrer le fichier compressé dans le même dossier ...Enregistrer zip de pdf dans le dossier avec jszip

mais vraiment je n'ai pas bon comprension sur la façon de l'utiliser

ici ce que je l'ai fait:

 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"); 
     }); 
     } 
    }); 

peut anibody me aider?

Répondre

0

Le morceau de code suivant est ce qui a fini par fonctionner pour moi. NB, ceci est pour jszip utils version 3. Il a besoin de l'utilitaire filesaver.js pour faire fonctionner l'appel saveAs (https://github.com/eligrey/FileSaver.js).

Voici mon code:

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); 
      }); 
     } 
     }); 
    }); 
}; 

Ceci est adapté de l'info ici: https://gist.github.com/noelvo/4502eea719f83270c8e9

Hope it helps!