2つのディレクトリの内容を圧縮し、その結果の.zipファイルをダウンロードしようとしています。 1つのディレクトリに.txtファイルとその他の.jpgが含まれています。私はアーカイバを使用してファイルを圧縮し、ノードjs上で高速フレームワークを実行しています。私は、問題がダウンロード手順に存在すると思う傾向があります。その結果、プロジェクトルートに作成された圧縮ファイルが予想通りに展開されるため、ファイルがダウンロードされると「エラー2 - ファイルやディレクトリがありません。 "Node Js、Archiver、Expressを使用して.zipファイルを正しくダウンロードする方法
app.get('/download',function(req, res){
zipFile = new Date() + "-Backup.zip";
var output = fs.createWriteStream(__dirname +"/backups/"+ zipFile);
var archive = archiver('zip');
output.on('close', function() {
console.log(archive.pointer() + ' total bytes');
console.log('archiver has been finalized and the output file descriptor has closed.');
});
archive.on('error', function(err) {
throw err;
});
archive.pipe(output);
var files1 = fs.readdirSync(__dirname+'/posts');
var files2 = fs.readdirSync(__dirname+'/uploads');
for(var i = 0; i< files1.length; i++){
archive.append(fs.createReadStream(__dirname+"/posts/"+files1[i]), { name: files1[i] });
}
for(var i = 0; i< files2.length; i++){
archive.append(fs.createReadStream(__dirname+"/uploads/"+files2[i]), { name: files2[i] });
}
archive.finalize();
res.download(__dirname + "/backups/" + zipFile, zipFile);
});
zipFileはグローバル変数です。
「オン」ログは正常に起動し、エラーは発生しませんが、ファイルはダウンロード後に開きません。レスポンスヘッダーなど、私が気付いていない問題がありますか?
ありがとうございました。
私は同じ問題があります。あなたはあなたの問題を解決しましたか? –
私は、別のzipユーティリティを使用して、問題を解決しました。下記の私の答えを見てください。 – mgperkowski
私は少し別の理由がありました。この記事を読むhttp://stackoverflow.com/questions/38466944/can-not-open-zip-file-after-downloading-through-nodejs-application-あなたが面白いのであれば –