首页 > 解决方案 > 在 Nodejs 中将响应保存为附件

问题描述

在我的一个项目中,我正在使用外部 API,它给出的响应为“application/zip”,我需要向客户端发送相同的响应,以便可以将响应保存到文件中,然后用户解压缩并使用它。邮递员的相同场景正在按预期工作,但是从节点代码生成的文件已损坏。以下是来自我的 cntroller 的代码片段,我从 API 中提取 zip 数据

Service.getZipFileContent(userData, key).then(response=> {
            res.setHeader("content-Type", "application/zip; charset=utf-8");
            res.setHeader("content-Length", response.length);
            res.setHeader('Content-Disposition', `attachment; filename=${filename}`);
            res.send(response);
  });

邮递员尝试的API的响应如下 在此处输入图像描述

我无法正确发送和创建 zip 文件。

标签: javascriptnode.jsexpress

解决方案


尝试使用不同的字符集,我认为结果长度可能是错误的,我不知道它来自哪里。您还可以在本地实例上写入文件并将路径发送到客户端。


推荐阅读