fs.readfile图片二进制结果=远程图片得到相同结果 - CNode技术社区

fs.readfile图片二进制结果=远程图片得到相同结果
发布于 12 年前 作者 shaniu00 8333 次浏览 最后一次编辑是 9 年前

大家都知道 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进制不可以么,就像验证码一样

回到顶部

AltStyle によって変換されたページ (->オリジナル) /