我需要从外部服务器下载图像并将其动态推送给我的客户端。使用curl与node.js下载图像并将其转换为base64
外部服务器正在使用SSL和基本身份验证。花了几个小时试图使用'request'和'restler'模块后,我放弃了并且解决了'curlrequest'模块,这个模块工作正常。
我的问题是,由curl下载的二进制图像数据不会转换成可读的base64图像。我想可能会有一些卷曲的标志,但我并不确定。任何帮助表示赞赏。
var curl = require('curlrequest');
exports.slideImageData = function (req, res){
var id = req.params.id;
var prefix = "data:image/png;base64, ";
var options = {
url: config.jive.domain + 'api/core/v3/people/' + id + '/images/1/data'
, user: config.jive.user + ':' + config.jive.pass
};
curl.request(options, function (err, result){
if (err){
console.log(err)
} else{
var base64Image = new Buffer(result, 'binary').toString('base64');
base64Image = prefix + base64Image;
res.send('<img src="' + base64Image + '"/>');
}
});
}
要添加更多的上下文,这里是图像在客户端中的样子。有意使用椭圆截断base64编码。
<img src="data:image/png;base64, /VBORw0KGgoAAAANSUh ... AAAABJRU5E/UJg/Q==">
当我尝试使用RAW时,出现错误:无法初始化。此外,当我尝试使用编码:空,我得到的错误:未知的编码:[对象对象]。 https://github.com/chriso/curlrequest –
尝试使用它们的RAW示例,它具有稍微不同的语法:https://github.com/jiangmiao/node-curl – dankohn