0

現在、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);
4

0 に答える 0