【发布时间】:2013-12-06 13:52:14
【问题描述】:
我正在使用 Request 模块来下载文件,但是当文件名必须来自“Content-Disposition”标头时,我不太确定如何将响应传输到输出流。所以基本上,我需要读取响应直到找到标头,然后将其余部分通过管道传输到该文件名。
示例显示如下:
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'));
我想做的地方(伪代码):
var req = request('http://example.com/download_latest_version?token=XXX');
var filename = req.response.headers['Content-Disposition'];
req.pipe(fs.createWriteStream(filename));
我可以使用请求回调获取文件名:
request(url, function(err, res, body) {
// get res headers here
});
但这不会否定使用管道而不将下载的文件加载到内存中的好处吗?
【问题讨论】: