現在、node.js サーバーからアーカイブを作成して送信する際に問題があります。
実際、アーカイブに5つのcsvファイルを含むアーカイブの作成に成功しましたが、アーカイブをReactアプリケーションに送信し、このアーカイブを解凍すると、ファイルが1つしかありません....
サーバーによって作成されたアーカイブを (ローカルで) チェックしましたが、React アプリケーションに送信されたフォルダーを解凍すると、1 つではなく 5 つのファイルがあります。
私のhttp応答:
import { Parser } from "json2csv";
import archiver from "archiver";
import fs from "fs";
import path from "path";
const output = fs.createWriteStream(`csv/${campaign.title}.zip`, 'utf-8');
const archive = archiver("zip", {
zlib: { level: 9 }, // Sets the compression level.
});
output.on("close", function () {
console.log(archive.pointer() + " total bytes");
console.log("archiver has been finalized and the output file descriptor has closed.");
});
output.on("end", function () {
console.log("Data has been drained");
});
archive.on("warning", function (err) {
if (err.code === "ENOENT") {
// log warning
} else {
// throw error
throw err;
}
});
archive.on("error", function (err) {
throw err;
});
archive.pipe(output);
d.map(items => {
let file = items;
archive.append(file, { name: file });
});
archive.pipe(res)
archive.finalize();
res.setHeader('application/zip')
res.setHeader("Content-Disposition", `attachment; filename=${campaign.title}.zip`);
res.status(200).send(archive);