【问题标题】:NodeJS Express - Endpoint to download filesNodeJS Express - 下载文件的端点
【发布时间】:2018-06-22 14:53:33
【问题描述】:

最近,我在一个项目中偶然发现了一个问题,我无法找到一个真正令人满意的解决方案。 我想要一个让用户下载文件的端点。为此,我使用了 Express 的功能 res.download(filename),效果很好。但是,在我的场景中,文件放在服务器上,所以我必须先下载它。我目前正在做的是使用请求模块请求文件,使用 fs 将其保存到文件系统,然后让用户下载它。然后我删除它。

我认为这不是一个好的解决方案,我想知道是否有更好的方法。

我正在尝试这样的事情:

app.get('/download', (req, res) => {
const url = 'https://i.imgur.com/4BZWw57.jpg',
    r = request(url);

r.on('response', function(response) {
    response.pipe(res.download('response.headers.date'));
    console.log(response);
});

});

是否可以不将文件保存在我的文件系统上,而是立即将其流式传输给用户?

【问题讨论】:

  • 您需要更改 content-disposition 标头

标签: node.js express download pipe


【解决方案1】:

我做了类似的事情:

app.get('/download', (req, res) => {
const url = 'https://i.imgur.com/4BZWw57.jpg',
    r = request(url);
    req.pipe(r);
    r.pipe(res);

});

【讨论】:

  • 但是没有提示下载但是浏览器会加载它,对吗?编辑:试过了,是的,它是在浏览器中加载的
猜你喜欢
  • 2021-10-22
  • 2019-03-30
  • 2020-06-18
  • 2013-12-14
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多