Отображать изображение в GridFS
Я использую gridfs-поток https://github.com/aheckmann/gridfs-stream и в настоящее время я показываю изображение из gridFS.
При чтении данных это дает мне следующий вывод. Когда я добавляю эти данные к <img src="data:image/jpeg;base64,(data)">
, изображение не показывает.
gfs
// create a read stream from gfs...
.createReadStream({ filename: 'error1.png' })
// and pipe it to Express' response
.pipe(res);
Выходное разрешение: -
Отредактировано: -
Я попробовал это: -
img.src = 'data:image/jpeg;base64,' + btoa(res);
Выводится вывод:
<img src="data:image/jpeg;base64,W29iamVjdCBPYmplY3Rd">
Изображение не показано.
1 ответ
Решение
Я использую файловый поток, демонстрирующий:
var rstream = fs.createReadStream('test.png');
var bufs = [];
rstream.on('data', function(chunk) {
bufs.push(chunk);
}).on('end', function() { // done
var fbuf = Buffer.concat(bufs);
var base64 = (fbuf.toString('base64'));
res.send('<img src="data:image/jpeg;base64,' + base64 + '">');
});