0

我目前在从 node.js 服务器创建和发送档案时遇到问题。

事实上,我成功地在存档中创建了一个包含 5 个 csv 文件的存档,但是当我将存档发送到我的 React 应用程序并且当我解压缩这个存档时,我只有一个文件....

我检查了(本地)服务器创建的存档,当我解压缩发送到 React 应用程序的文件夹时,有 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