我正在尝试使用快递js下载文件,但我遇到了一些麻烦 以下是功能:
var download = function(uri, filename, callback) {
request
.get(uri)
.on('response', function (response) {
var ext = response.headers['content-type'].split('/');
filename += '.' + ext[1];
})
.pipe(fs.createWriteStream(filename));
};
问题是我不知道文件的扩展名,所以我需要在响应头中获取它,但ext[1]
值不会使用文件扩展名增加我的文件名。我甚至无法通过引用设置变量来在函数外部进行。
答案 0 :(得分:0)
请改为尝试:
var mime = require('mime-types'); // After npm install mime-types
request
.get(uri)
.on('response', function (response) {
var responseType = (response.headers['content-type'] || '').split(';')[0].trim();
var ext = mime.extension(responseType);
filename += '.' + ext;
var fileStream = fs.createWriteStream(filename)
.on('finish', function() {
//Download complete
})
this.pipe(fileStream);
})
P.S。您正在使用'request'模块下载,而不是使用express。