我有一个这样的 vue 文件,
export default {
data(){
return{
info: {
name: '',
image: '',
},
errors: []
}
},
created: function(){
this.getInfo();
},
methods: {
getInfo: function(){
this.info.name = response.data.results[0].name;
this.info.image = response.data.results[0].image;
}
}
}
我正在将此文件中的数据传递到子 Vue 组件中。子组件如下,
<template>
<div class="ui items">
<div class="item">
<div class="ui small image">
{{info.image}}
</div>
</div>
</div>
</template>
<script>
export default{
props:['info']
}
</script>
我的图像作为 blob 存储在 MySQL 数据库中。当我运行我的应用程序时,图像在 UI 上显示为二进制数据。物体看起来像这样,
这里有人可以帮我显示图像吗?非常感谢!
原文由 CoderPJ 发布,翻译遵循 CC BY-SA 4.0 许可协议
你想要的是一个 数据 url 。您需要将字节数组转换为 base64。无法使用原始字节。也许在计算属性中执行此操作,使用 字节数组之一到 base64 函数。
标记
行为(未经测试!)
搜索你的良心。这真的不是一个好主意 :-) 将图像作为 JSON 编码的字节数组发送是 我从未见过的,并且大约会比二进制图像大 10 倍。 数据库中的图像是一种反模式。 JSON 中的图像可以工作,但它们应该在 JSON 中编码为 base64 字符串。即便如此,它们也会降低 JSON 的可读性,并可能埋没像 Postman 这样的工具。数据 url 的加载速度比常规 url 慢得多。即使在数据库中有图像,如果你控制你的 api,你可以通过制作只返回字节数组的图像 api,使用 application/jpeg mime 类型获得很多。