JSZip è una libreria JavaScript che consente di creare, leggere ed editare file .zip tramite un'API dedicata alla gestione degli archivi compressi. Si tratta di una soluzione Open Source a doppia licenza (MIT e GPLv3). È disponibile la compatibilità con tutte le versioni più recenti dei browser Web maggiormente utilizzati e può essere impiegato anche in un ambiente basato su Node.JS.
Installazione e istanza della libreria
La libreria può essere installata manualmente dopo aver scaricato il package dal repository ufficiale su GitHub. Una volta effettuato il download è possibile includere nella propria applicazione il file dist/jszip.js
o la sua versione minificata dist/jszip.min.js
.
Diversamente è possibile ricorrere a npm, bower o component. Scegliendo ad esempio la prima opzione il semplice comando da utilizzare è il seguente:
npm install jszip
Un'istanza di JSZip è la rappresentazione di un set di file. Questi ultimi possono essere aggiunti, rimossi o aggiornati. Si può anche importare un file .zip
Su Node.JS, invece, si procede con require
:
var JSZip = require("jszip");
In ogni caso l'istanza viene generata tramite:
var zip = new JSZip();
Utilizzare JSZip nei propri progetti
Un semplice esempio di utilizzo della libreria nei propri progetti potrebbe essere il seguente:
var zip = new JSZip();
zip.file("Bart.txt", "Ciucciati il calzino\n");
var img = zip.folder("immagini");
img.file("homer.gif", imgData, {base64: true});
zip.generateAsync({type:"blob"})
.then(function(content) {
saveAs(content, "archivio.zip");
});
Eseguendo il codice verrà creato un file .zip
chiamato archivio.zip
contenente due file: un .txt
chiamato Bart.txt
nel quale è stata inserita la frase "Ciucciati il calzino" e un'immagine .gif
chiamata homer.gif
. Quest'ultima sarà contenuta nella cartella immagini
.
Nell'utilizzare JSZip è bene tenere presente che la libreria non supporta tutte le funzionalità che generalmente sono associate ad un archivio .zip
. È possibile gestire un qualsiasi file .zip
ma non quelli criptati e multi-volume.