javascript - 在 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);
});
我无法正确发送和创建 zip 文件。
解决方案
尝试使用不同的字符集,我认为结果长度可能是错误的,我不知道它来自哪里。您还可以在本地实例上写入文件并将路径发送到客户端。
推荐阅读
- react-native - 如何在本机反应中获取多个渲染组件的状态?
- r - 在列中填充丢失的零并不普遍
- reactjs - 在 React 中将类组件转换为功能组件
- c# - 将 RadioButton 绑定到枚举
- angular - 如何使用 Angular 内置的响应式表单验证自定义材质组件
- json - 在 d3 图上使用 JSON.parse(JSON.stringify(data)) 会给出 d3.v6.js:1816 错误:
属性 d:预期数字,“MNaN, - python - 使用预训练模型在 dask 中运行函数
- sharepoint - 在 SharePoint 中添加字段列
- java - 用java(forloop)制作这个菱形图案
- c# - SystemParameters.SmallIconWidth 在任何 dpi 上返回 16,那么如何检查实际的最佳图标大小?