我正在尝试使用express 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]
值不会使文件扩展名随文件名而增加。我什至不能通过引用设置变量以在函数外部进行操作。
尝试以下方法:
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);
})
附注:您正在使用“请求”模块进行下载,而不是通过Express进行下载。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句