gpt4 book ai didi

node.js - 显示存储为缓冲区的 MongoDB 图像

转载 作者:可可西里 更新时间:2023-11-01 09:06:17 25 4
gpt4 key购买 nike

所以我正在存储这样的图像:

router.post('/', upload.single('pic'), (req, res) => {
var newImg = fs.readFileSync(req.file.path);
var encImg = newImg.toString('base64');
var s = new Buffer(encImg, 'base64');

var newCar = {
picture: s,
contentType: req.file.mimetype,
link: req.body.link
}
})
});

现在数据看起来像这样:

{
_id: 5a502869eb1eb10cc4449335,
picture: Binary { _bsontype: 'Binary',
sub_type: 0,
position: 1230326,
buffer: <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49
48 44 52 00 00 05 00 00 00 03 1e 08 06 00 ... >
},
contentType: 'image/png',
link: 'fds',
__v: 0
}

我想在前端显示这张图片,像这样:

<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

在我的例子中,这段代码将是:

<img src="data:<%= c.contentType %>;base64, <%= c.picture %>" />

我得到的只是一些奇怪的符号: Image of FrontEnd Console

我想我几乎尝试了所有方法,但仍然无法弄清楚这是什么。即使我将该缓冲区转换为 String('ascii'),我仍然会收到一些无法识别的符号(框)。

我该怎么办?附言另外,这是存储图像的好方法吗? (小于 16MB),我想我注意到它有点慢,因为那些长字符串转换和读取文件,与我只将图像存储为文件的情况相比?

最佳答案

HTML

   <img [src]="'data:image/jpg;base64,'+Logo.data" height="50" width="60" alt="Red dot" />

来自数据库的数据:

 "Logo" : {
"data" : BinData(0,"/9j/4AAQSkZJRgABAQEAYABgAAD/"),
"name" : "dp.jpg",
"encoding" : "7bit",
"mimetype" : "image/jpeg",
"truncated" : false,
"size" : 895082
}

希望对你有帮助

关于node.js - 显示存储为缓冲区的 MongoDB 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48128697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com