node.js - 通过 Express 将 Filestream 发送到客户端以进行下载
问题描述
我正在构建一个 Node.js 应用程序,它接收一个字符串,在一个函数中使用它,然后返回一个 Filestream。如何通过 Express 发送该 Filestream,以由客户端下载,并具有特定名称?
dls.get('/:id', (req, res, next) => {
function(req.params.id).solution()
next()
})
app.use('/download', dls)
解决方案
目前尚不清楚您显示的代码试图做什么,因为我们不知道是什么dls
。
要将文件流发送到客户端,您可以readstream.pipe(res)
在 readstream 是您要发送的文件流的地方执行操作。要引导浏览器将其下载为具有建议名称的文件,请将content-disposition标头设置为Content-Disposition: attachment; filename="filename.jpg"
.
如果您尝试让一个请求为另一个可以使用通用 URL 的请求(例如/download
获取内容)进行设置,那么这将更加复杂,因为您必须有一些地方(例如服务器端会话)来存储一些状态,这些状态会告诉/download
路由哪个用户和要发送哪个下载。
推荐阅读
- git - 合并分支会删除代码行
- mysql - 获取列中具有重复项的行的 ID
- django - 我的演示 django 项目在重新启动命令提示符后没有启动服务器
- reactjs - Axios 在 React 中的 render() 方法中导致未定义
- php - 如何使用codeigniter在两个表中插入表单数据,包括具有相同ID的多行表
- flutter - 如何实现属性向右滑动和向左滑动
- javascript - onClick 将属性添加到 jsx
- r - 我如何知道 R 中数据集的分布?
- angular - 动态注入组件与通过 *ngIf 控制它
- node.js - 将时间切片音频附加到发送到 dialogflow.streamingDetectIntent() 的流中