2013-01-06 24 views
5

È possibile scaricare più immagini nel file system sandbox (senza la finestra di dialogo "Salva con nome" o una finestra di dialogo di savea)?Download di più file e zip - Estensione di Chrome

dopo averli scaricati, mi piacerebbe comprimerli in uno .. c'è qualche libreria di archivi javascript?

Grazie in anticipo ..

+0

si può avere accesso a tutti i contenuti di 'resources' in una pagina (immagini, file js \ css, ecc.) non sono sicuro di archiviare tramite JS – Sudarshan

risposta

1

È possibile accedere alle immagini come parti regolari di alcune pagine web o scaricare separatamente mediante XMLHTTPRequest s. Dopo questo puoi comprarli in un unico archivio usando la libreria JavaScript JSZip. Lo zip può essere memorizzato come un file senza una finestra di dialogo "Salva con nome" (prova l'esempio sul sito). Anche se non sono sicuro del motivo per cui hai bisogno dello sandbox.

Esistono altre librerie JavaScript per lo zipping, ad esempio, alcune sono menzionate in other SO answer.

+0

No. Non lo ZIP .. La domanda era in realtà - quando ho scaricato le immagini , posso scaricare le immagini senza il dialogo "saveAs"? Ma l'esempio nel sito sembra più semplice di quello che ho pensato ... li provo prima io. – raj

6

Per questo è possibile utilizzare zip.js. Dispone già di API per il recupero dei contenuti da zippare da HTTP (costruttore zip.HttpReader) e per scrivere zip generati su file system HTML5 (costruttore zip.FileWriter).

Ecco un esempio utilizzando il filesystem API: file di

index.html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Zip JSON data from the BBC into HTML5 FileSystem</title> 
</head> 
<body> 
    <script src="zip.js"></script> 
    <script src="zip-fs.js"></script> 
    <script src="zip-ext.js"></script> 
    <script src="example.js"></script> 
</body> 
</html> 

example.js di file:

// create a zip virtual filesystem 
var fs = new zip.fs.FS(); 

// add some files into the zip filesystem 

// add the "bbc-music.json" file in the root directory 
fs.root.addHttpContent("bbc-music.json", 
    "http://www.bbc.co.uk/programmes/genres/music.json"); 
// add the "bbc-learning.json" file in the root directory 
fs.root.addHttpContent("bbc-learning.json", 
    "http://www.bbc.co.uk/programmes/genres/learning.json"); 

// create a file named "test.zip" in the root directory of the HTML5 filesystem 
createFile("test.zip", function(fileEntry) { 
    // export the zip content into "test.zip" file 
    fs.root.exportFileEntry(fileEntry, function() { 
    console.log("done"); 
    }); 
}); 

// function to create a file in the HTML5 temporary filesystem 
function createFile(filename, callback) { 
    webkitRequestFileSystem(TEMPORARY, 4 * 1024 * 1024, function(fs) { 
    fs.root.getFile(filename, { create : true }, callback); 
    }); 
} 
+0

Chrome è dove solitamente vengono eseguite le estensioni di Chrome. –

+0

Questo è vecchio, ma per la vita di me non posso capire come scaricare il zip creato. Ho la creazione funzionante, ma non sono sicuro di come trovare l'URL per il file creato. – GtwoK

Problemi correlati