Senden generierte zip-Datei mit ExpressJS
Ich bin mit der express-Modul in einem NodeJS-server generiert eine zip-Datei. Die express-server reagiert auf die vielen Anfragen, damit ich weiß, dass ist korrekt eingerichtet, aber ich habe Probleme beim erzeugen einer zip-Datei und senden diese wieder als Download bereit.
Ich nicht wollen, um die Datei zu speichern und dann Sag Express zu senden, die Datei als download, ich will nur senden Sie die zip-Datei als Daten aus dem Speicher. Hier ist was ich habe, so weit.
function buildZipFile(data, filename) {
var zip = new require('node-zip')();
zip.file(filename, data, { base64: false });
return zip.generate();
}
var data = buildZipFile('hello world', 'hello.txt');
res.set('Content-Type', 'application/zip')
res.set('Content-Disposition', 'attachment; filename=file.zip');
res.set('Content-Length', data.length);
res.end(data, 'binary');
return;
Wird die Datei wieder, aber weder windows unzip oder 7zip öffnen können Sie das Archiv, als wenn es beschädigt ist. Irgendwelche Vorschläge? Vielen Dank im Voraus.
InformationsquelleAutor James | 2013-08-20
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie brauchen, um passieren Ihre Optionen zu
zip.generate
nichtzip.file
. Dieser erstellt ein zip Archiv ich kann die ordnungsgemäße Untersuchung und/entpacken überzipinfo
/unzip
.zip.generate
gibt Sie in-memory-Daten. Von dort aus können Sie entscheiden, zu streamen, wie eine HTTP-Antwort des Körpers oder wo immer sonst Sie möchten.node-zip
scheint nicht mehr aktiv und ist ein extrem dünner wrapper umJSZip
. Verwenden Sie einfach JSZip direkt, da es mehr aktiv.