节点流添加标头错误地发送文件

问题描述:

所以我有一种奇怪的错误。如果我做以下操作:节点流添加标头错误地发送文件

res.header('content-disposition', 'filename=' + mediaObject.file.originalname); 

我可以下载该文件。

但是只要我一个额外的行添加到标题中的文件下载错误,例如:

res.header('content-disposition', 'filename=' + mediaObject.file.originalname,"Content-Length: " + mediaObject.file.size); 

的的mediaObject值:

File: 

buffer: null 
encoding: 7bit 
extension: mp4 
fieldname: file 
mimetype: video/mp4 
name: test1434922812720.mp4 
originalname: test.mp4 
path: uploads/test1434922812720.mp4 
size: 22179964 
truncated: false 

所以我的问题是我是什么?做错了?

我相信你没有正确使用res.header方法,因为你试图在同一个调用中设置两个键/值对。

方法的正确原型是res.header(field [, value])

我宁愿建议使用res.download这可能更多地表明你正在努力实现的目标,并为你设置适当的标题。

+0

如果即时通讯试图流 –

+0

这是没有提到你的问题。为了流式传输,我会在节点中创建一个读取流(使用fs.createReadStream),并将流传递给响应。 –