【问题标题】:how to stream a file to server and synchronously stream it to user? (usual file download imitation)如何将文件流式传输到服务器并同步流式传输给用户? (一般文件下载仿)
【发布时间】:2014-10-06 14:54:24
【问题描述】:

我需要为一个文件创建一个可下载的链接,但是由于某些原因我无法直接加载文件。 有没有办法将文件从其目的地流式传输到远程服务器,并立即(同时)从服务器传输到用户。 谢谢你。

【问题讨论】:

  • Node.js 充分利用了管道。为文件创建一个流并将其输出到浏览器。

标签: javascript node.js stream streaming download


【解决方案1】:

您可以使用fs.createReadStream() 并将其传递给响应对象。例如:

var fs = require('fs'),
    http = require('http');

http.createServer(function(req, res) {
  res.writeHead(200, { 'Content-Type': 'text/javascript' });
  fs.createReadStream(__filename).pipe(res);
}).listen(8000);

【讨论】:

  • 这很棒,但我不太确定如何将它与当前的项目结构集成。数据处理在 router.get() 方法中完成,最后,它通过 res.render 方法完成,将数据推送到浏览器页面。我可以将下载链接到某个活动吗?
  • 您必须发布项目的相关部分以显示您正在尝试做什么。
  • 谢谢!你是对的。我创建了另一个 router.get() 方法,传递了必要的参数并生成如下输出: res.setHeader('Content-disposition', 'attachment; filename='+query.title);请求(链接).pipe(res);似乎一切正常。
猜你喜欢
  • 1970-01-01
  • 2010-10-18
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
相关资源
最近更新 更多