首页 > 解决方案 > 通过 Express 将 Filestream 发送到客户端以进行下载

问题描述

我正在构建一个 Node.js 应用程序,它接收一个字符串,在一个函数中使用它,然后返回一个 Filestream。如何通过 Express 发送该 Filestream,以由客户端下载,并具有特定名称?

dls.get('/:id', (req, res, next) => {
    function(req.params.id).solution()
    next()
})
app.use('/download', dls)

标签: node.jsexpress

解决方案


目前尚不清楚您显示的代码试图做什么,因为我们不知道是什么dls

要将文件流发送到客户端,您可以readstream.pipe(res)在 readstream 是您要发送的文件流的地方执行操作。要引导浏览器将其下载为具有建议名称的文件,请将content-disposition标头设置为Content-Disposition: attachment; filename="filename.jpg".

如果您尝试让一个请求为另一个可以使用通用 URL 的请求(例如/download获取内容)进行设置,那么这将更加复杂,因为您必须有一些地方(例如服务器端会话)来存储一些状态,这些状态会告诉/download路由哪个用户和要发送哪个下载。


推荐阅读