如何转换保存在db中的二进制图像数据并在浏览器中显示

Posted

技术标签:

【中文标题】如何转换保存在db中的二进制图像数据并在浏览器中显示【英文标题】:How to convert binary image data saved in db and display in browser 【发布时间】:2020-11-25 00:00:29 【问题描述】:

所以我正在创建一个允许用户发布图像的 Web 应用程序,我使用 multer 将图像作为二进制文件保存到我的 mongo 数据库中,现在我想检索图像并将其呈现在网页上,但是当我执行时图像不显示使用 img 标签,请你知道我如何将二进制图像数据转换为普通的网页可读图像格式,刚刚发现我不能在反应中使用“fileSystem”,我想知道是否有任何方法可以做到这一点或任何 sn- p 的代码我可以用来完成这个任务,谢谢!

【问题讨论】:

我的第一个想法是创建一个数据 img 标签。您可以对数据进行编码并将其直接放入 html 图像标记中。 <img src="DATA GOES HERE">。见***.com/questions/8499633/… 看看这里:codeburst.io/… 【参考方案1】:

如果您不能/不想将其存储为常规文件并提供服务,您可以尝试使用 base64 格式显示它。你可以在这里找到更多信息:How to display Base64 images in HTML?

但简单来说,你只需要显示这样的标签<img src="data:image/png;base64,base 64 here ..." />

但我强烈建议您使用一些文件上传功能,而不是将原始字节保存到数据库中。

【讨论】:

好的,感谢我看到的评论,我想从现在开始我会将图像保存为普通 blob

以上是关于如何转换保存在db中的二进制图像数据并在浏览器中显示的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET - 如何在浏览器中显示图像而不将图像保存在临时文件中?

如何显示缓冲图像

如何将二进制图像保存为任何格式到我的电脑上

如何在 applicationDidEnterBackground 上保存 SQL 数据/关闭 DB 并在 applicationWillEnterForeground 上恢复

Android 从 Sqlite 数据库保存和获取图像

如何保存从python中的图像转换的数组? [复制]