通过Express发送文件流到客户端以进行下载

问题描述 投票:0回答:1

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

dls.get('/:id', (req, res, next) => {
    function(req.params.id).solution()
    next()
})
app.use('/download', dls)
node.js express
1个回答
0
投票

由于我们不知道dls是什么,所以不清楚您显示的代码正在尝试做什么。

要向客户端发送文件流,请执行readstream.pipe(res),其中readstream是要发送的文件流。要指示浏览器将其下载为带有建议名称的文件,请像在content-disposition中一样设置Content-Disposition: attachment; filename="filename.jpg"标头。

[如果您试图让一个请求针对另一个请求进行设置,而另一个请求可以使用诸如/download之类的通用URL来获取内容,那么这会涉及更多的内容,因为您必须拥有一些位置(例如服务器)端会话)存储一些状态,该状态将告诉/download路由哪个用户和哪个下载发送。

© www.soinside.com 2019 - 2024. All rights reserved.