You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android上传至MySQL的BLOB图片无法在PHP Web端显示求助

问题排查与解决方案

嗨,我来帮你搞定这个图片显示的问题!

先看核心问题所在:你的Android代码已经把图片转换成Base64编码字符串后上传到数据库了,但PHP端又对数据库里的内容做了一次base64_encode,导致重复编码,浏览器自然解析不了这个错误的Base64内容。

具体分析

  • Android端:你通过Base64.encodeToString(imageBytes, Base64.DEFAULT)把图片字节流转换成了Base64字符串,然后上传并存入MySQL的image字段。这意味着数据库里的image字段存储的已经是Base64编码后的内容。
  • PHP端:你现在的代码里调用了base64_encode( $row['image'] ),相当于对已经编码过的字符串再次编码,生成的内容完全不符合图片的Base64格式,所以浏览器无法渲染图片。

修正后的PHP代码

把多余的base64_encode去掉,直接输出数据库里的原始Base64字符串即可:

echo '<img src="data:image/jpeg;base64,'. $row['image'] .'" width="50px" height="50px"/>';

额外验证步骤

你可以打开phpMyAdmin查看image字段的内容,如果开头是类似/9j/4AAQSkZJRgABAQEAAAAAAAD/这样的Base64字符,就完全可以确认是重复编码的问题。另外也可以检查一下字段类型是否是TEXT或LONGTEXT,避免存储时内容被截断(不过你说上传功能正常,这个大概率没问题)。

内容的提问来源于stack exchange,提问作者user9438510

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:37:49