image - 如何在 Vue.js 应用程序的 img 标签中显示 blob 图像?
问题描述
我以以下格式将图像保存到数据库:
data:image/png;base64,iVBORw0KGgoAAAANSUhEU...
当我从数据库中获取该图像时,我在“响应”部分的“网络”选项卡中看到以下内容:
"planimetry": {
"type": "Buffer",
"data": [
100,
97,
116,
97,
58,
...
在 Vue.js 模板中,我有:
<img
:src="sectionData.planimetry"
/>
我作为道具获得的 sectionData 是 BLOB 的类型。
问题是未显示图像,即:src="[object Object]。
如何显示图像?
解决方案
数字 100、97、116、97、58 只是data:
ASCII 格式。这表明该数组只是原始图像格式的字节。
您可以使用以下方式恢复原始格式:
planimetry.data.map(b => String.fromCharCode(b)).join('')
这应该足以将其src
用作<img>
.
如果可能的话,我希望这将在服务器上而不是在 UI 中修复。如果它返回图像的原始字节,那么就足够公平了,但data:image/png;base64
实际上应该只是作为字符串传输。
推荐阅读
- xslt - xml 属性中的 xslt
- javascript - 在 React 中注入动态 HTML - CSS 不起作用
- php - 帐户恢复页面没有响应
- javascript - 调度 redux 操作时 React Native JS 丢帧
- jquery - 如何在 ERB 文件中的 link_to 标签旁边放置一个复选框,当我们选中一个框时,我们应该获取 ERB 的 link_to 标签的值?
- android - 通过 adb 的电话号码
- java - 为 kafka 代理服务器设置 GC 日志轮换策略
- c++ - R安装包“稍后”失败
- ios - 如何获得非矩形按钮?
- google-cloud-dataflow - 基于管道中基于键的分组在数据流中的GS上写入多个文件