php - Base64 编码的图像未显示
问题描述
我在带有图像的表中有一个 blob 列。图像被保存,通过命令提示图像显示为图像名称,通过转储显示为流资源。
我想显示与其相关的报价的图像,但我没有显示图像,只是 alt。
控制器
// Images
$imgs=$imR->findAll();
$img=array();
foreach ($imgs as $i) {
$img[]=base64_encode(stream_get_contents($i->getImage()));
}
for ($i=0; $i < sizeof($imgs); $i++) {
$imgs[$i]->setImage($img[$i]);
}
枝条
{% for pic in imgs %}
{% if pic.Offer.id == part.id %}
<img alt="Embedded Image" src="data:image/jpeg;base64, {{pic.Image}}"/>
{% endif %}
{% endfor %}
Chrome 开发者工具
<img alt="Embedded Image" src="data:image/jpeg;base64, ZmlsZS01ZDQzZmE0NzRiNmI4LmpwZWc=">
编码前转储
0 => Images {#1080 ▼
-id: 1
-Image: stream resource @840 ▼
wrapper_type: "PHP"
stream_type: "TEMP"
mode: "w+b"
unread_bytes: 0
seekable: true
uri: "php://temp"
options: []
}
-Offer: Offers {#927 ▶}
}
编码后转储
0 => Images {#1080 ▼
-id: 1
-Image: "ZmlsZS01ZDNlYmFjNDc4YTQ1LmpwZWc="
-Offer: Offers {#927 ▶}
任何想法为什么图像无法正确显示?图片扩展名:jpeg
解决方案
通过删除基本编码修复
控制器
// Images
$imgs=$imR->findAll();
$img=array();
foreach ($imgs as $i) {
$img[]=stream_get_contents($i->getImage());
}
for ($i=0; $i < sizeof($imgs); $i++) {
$imgs[$i]->setImage($img[$i]);
}
枝条
{% for pic in imgs %}
{% if pic.Offer.id == part.id %}
<img alt="Embedded Image" src="{{asset('offersImages/' ~ pic.Image)}}"/>
{% endif %}
{% endfor %}
现在正常显示。
感谢您提出问题所在
推荐阅读
- amazon-web-services - AWS ELB 丢弃连接。需要让它活着
- image - 将图像从 url 保存到应用程序中的某个文件夹中,例如 tmp、文档以供离线使用
- python - 使用 RASA 和 Python 和 Flask 的聊天机器人
- xml - XML 的 XSD 验证失败
- typescript - 如何在使用量角器测试的登录页面中输入可接受的虚假数据?
- apache-nifi - 如何通过在 NIFI QueryDataBaseTable 处理器中获取数据进行排序
- java - 如何授予经过身份验证的网站用户(App Engine 标准)访问 Google Cloud Storage 存储桶的权限?
- mysql - 在 where 中使用全文而不是 order by
- android - android Api level 19中不会出现特殊字符
- openedge - 是否可以在 AppBuilder 中连接除 sports2000 之外的数据库?