首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将node/express中的文件流式传输到客户端

将node/express中的文件流式传输到客户端
EN

Stack Overflow用户
提问于 2012-10-28 11:15:36
回答 2查看 58.8K关注 0票数 51

我想将内容流到客户端,这些内容可能存储在数据库中,他们会将其保存为文件。

显然,res.download可以很好地完成这项工作,但是.*函数都不接受流,只接受文件路径。

我看过res.download impl,它只设置了Content-Disposition头部,然后是一个发送文件。

因此,我可以使用这篇文章作为指南来实现这一点。Node.js: pipe stream to response freezes over HTTPS

但似乎我会错过res.send执行的所有包装方面。

我是否遗漏了什么,或者我应该只做管道而不去担心它--这里的最佳实践是什么?

目前正在创建临时文件,所以我现在可以只使用res.download。

EN

回答 2

Stack Overflow用户

发布于 2013-07-24 02:44:33

您可以直接流到响应对象(它是一个流)。

一个基本的文件流看起来像这样。

代码语言:javascript
复制
function(req, res, next) {
  if(req.url==="somethingorAnother") {
    res.setHeader("content-type", "some/type");
    fs.createReadStream("./toSomeFile").pipe(res);
  } else {
    next(); // not our concern, pass along to next middleware function
  }
}

这将负责绑定到dataend事件。

票数 119
EN

Stack Overflow用户

发布于 2015-01-31 09:38:24

确保来自客户端的AJAX请求设置了适当的“responseType”。例如,例如

代码语言:javascript
复制
$http({
  method :'GET',
  url : http://url,
  params:{},
  responseType: 'arraybuffer'
}).success()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13106096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档