Использование Node v0.2.0 Я пытаюсь получить изображение с сервера, преобразовать его в строку base64, а затем встроить его на страницу в тег изображения. У меня есть следующий код:
var express = require('express'),
request = require('request'),
sys = require('sys');
var app = express.createServer(
express.logger(),
express.bodyDecoder()
);
app.get('/', function(req, res){
if(req.param("url")) {
var url = unescape(req.param("url"));
request({uri:url}, function (error, response, body) {
if (!error && response.statusCode == 200) {
var data_uri_prefix = "data:" + response.headers["content-type"] + ";base64,";
var buf = new Buffer(body);
var image = buf.toString('base64');
image = data_uri_prefix + image;
res.send('<img src="'+image+'"/>');
}
});
}
});
app.listen(3000);
Примечание. Для этого кода требуется " express " и " request ". И конечно, узел . Если у вас установлен npm, он должен быть таким же простым, как «npm install express» или «npm install request».
К сожалению, это не работает, как ожидалось. Если я сделаю преобразование с логотипом Google , то в начале строки получу следующее:
77 + 9UE5HDQoaCgAAAA1JSERSAAABEwAAAF8IAwAAAO + / ве + / ве + / vSkAAAMAUExURQBzCw5xGiNmK0t + U ++ / vQUf77 + 9BiHvv70WKO + / vQkk77 + 9D
Однако, если я использую онлайн Base64 кодировщик с тем же изображением, то он работает отлично. Строка начинается так:
iVBORw0KGgoAAAANSUhEUgAAARMAAABfCAMAAAD8mtMpAAADAFBMVEUAcwsOcRojZitLflOWBR + aBiGQFiipCSS8DCm1Cya1FiyNKzexKTjDDSrLDS
Где я ошибаюсь, что это работает неправильно? Я пробовал так много разных реализаций js base64, и все они не работают одинаково. Единственное, о чем я могу думать, это то, что я пытаюсь преобразовать неправильную вещь в base64, но что я должен преобразовать, если это так?