Использование 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". И, конечно, node. Если у вас установлена npm, она должна быть такой же простой, как "npm install express" или "npm install request".
К сожалению, это не работает должным образом. Если я сделаю преобразование с логотипом Google, тогда я получаю следующее в начале строки:
77 + 9UE5HDQoaCgAAAA1JSERSAAABEwAAAF8IAwAAAO +/ве +/ве +/vSkAAAMAUExURQBzCw5xGiNmK0t + U ++/vQUf77 + 9BiHvv70WKO +/vQkk77 + 9D
Однако, если я использую онлайн-код Base64 encoder с тем же изображением, то он отлично работает. Строка начинается следующим образом:
iVBORw0KGgoAAAANSUhEUgAAARMAAABfCAMAAAD8mtMpAAADAFBMVEUAcwsOcRojZitLflOWBR + aBiGQFiipCSS8DCm1Cya1FiyNKzexKTjDDSrLDS
Где я ошибаюсь, что это работает неправильно? Я пробовал так много различных js base64-реализаций, и все они не работают одинаково. Единственное, о чем я могу думать, это то, что я пытаюсь преобразовать неправильную вещь в base64, но что мне нужно преобразовать, если это так?