【问题标题】:Display Image in GridFS在 GridFS 中显示图像
【发布时间】:2014-03-06 08:51:58
【问题描述】:

我正在使用 gridfs-stream 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">

没有显示图片。

【问题讨论】:

  • 我认为响应是二进制数据,不是base64编码的,所以试试
  • 我进行了实验....我直接从 db 复制了二进制文件并将其附加到 src 中,如 data:image/jpeg;base64,(data from db)....并显示了图像。
  • 我试过 .....so in src 它显示[object Object]
  • 我知道你现在想做什么,读取二进制数据并回显
  • 使用链接src,需要一个直接输出数据的新页面,可以设置src="new page output binnary image data"

标签: javascript node.js angularjs gridfs


【解决方案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 + '">');
});

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 2017-06-23
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2012-05-22
    • 2018-05-25
    相关资源
    最近更新 更多