【问题标题】:Saving response as a attachments in Nodejs在 Nodejs 中将响应保存为附件
【发布时间】:2020-03-15 22:44:59
【问题描述】:

在我的一个项目中,我正在使用外部 API,它给出的响应为“application/zip”,我需要向客户端发送相同的响应,以便可以将响应保存到文件中,然后用户将其解压缩并用它。邮递员按照预期的方式工作,但是从节点代码生成的文件已损坏。以下是来自我的控制器的代码 sn-p,我从 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);
  });

postman 尝试的 API 响应如下

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

【问题讨论】:

  • 什么是 result.length?

标签: javascript node.js express


【解决方案1】:

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

【讨论】:

  • result.length 是一个错字。我也尝试写入文件,但是保存的文件已损坏。
【解决方案2】:

在 sn-p 上面,将 content-length 从 result.length 更改为 response.length

【讨论】:

  • 抱歉,打错了。尝试了多种方法来解决问题,但仍然没有运气
【解决方案3】:

尝试使用您从该方法获得的响应来传递请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多