节点流添加标头错误地发送文件
问题描述:
所以我有一种奇怪的错误。如果我做以下操作:节点流添加标头错误地发送文件
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
这可能更多地表明你正在努力实现的目标,并为你设置适当的标题。
如果即时通讯试图流 –
这是没有提到你的问题。为了流式传输,我会在节点中创建一个读取流(使用fs.createReadStream),并将流传递给响应。 –