fs.readfile图片二进制结果=远程图片得到相同结果
大家都知道 fs.readFile可以读取远程图片获的二进制结果
现在有个需求 想获取远程图片 该怎么办
我不想把图片下载到本地 然后再用fs.readFile去读 增大了开销
有木有办法
2 回复
var http = require('http');
/**
* 读取远程文件
*
* @param {String} url
* @param {Function} cb
* - {Error} err
* - {Buffer} buf
*/
function readRemoteFile (url, cb) {
var callback = function () {
// 回调函数,避免重复调用
callback = function () {};
cb.apply(null, arguments);
};
var req = http.get(url, function (res) {
var b = [];
res.on('data', function (c) {
b.push(c);
});
res.on('end', function () {
callback(null, Buffer.concat(b));
});
res.on('error', callback);
});
req.on('error', callback);
}
readRemoteFile('http://www.baidu.com/img/bdlogo.gif', function (err, buffer) {
if (err) throw err;
console.log(buffer.length, buffer);
});
输出2进制不可以么,就像验证码一样