4
我在NodeJS服務器中使用express模塊生成zip文件。快速服務器響應許多請求,所以我知道設置正確,但我在生成zip文件並將其作爲可下載文件發回時遇到問題。用ExpressJS發送生成的zip文件
我不想保存文件,然後告訴Express將該文件作爲下載文件發送,我只想將zip文件作爲內存中的數據發送。這是我到目前爲止。
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;
該文件將返回,但windows解壓縮或7zip都不能打開存檔,就好像它已損壞。有什麼建議麼?先謝謝你。
我可以做到這一點,而不保存到硬盤? –
是的,'zip.generate'爲您提供內存數據。從那裏你可以決定將它作爲HTTP響應主體或你喜歡的任何地方進行流式傳輸。 –