img标签在三星手机下不显示base64编码的图片

其他手机又可以。。就三星手机不显示。 有人遇到过这样的问题吗?
<img src="data:image/png;base64,......" /> 我是这样的方式写的啊、搞了一天不知道什么原因

阅读 6k
1 个回答

正好用的是三星手机,顺带就测试了一下。

首先题主的问题明显是不合逻辑的。这种图片显示不出来,是和浏览器内核有关,而和系统或者手机品牌无太大关系。不过由于android自带有一个浏览器内核,这个倒是和系统版本有关的,但和品牌也无太大关连(个人所知,如有错误烦请指出,感激不尽)。另外在提问时,如果能够附上相关测试环境以及具体方法和代码等,能够让大家更容易帮到你。

因此,我就在手机上转换了一张图片并写了一个简单的html,并用firefox,自带的html viewer和自带浏览器分别测试了一下。结果是除了自带浏览器不能显示外,其余两个浏览器均能正常显示base64形式的图片,而由于我在html中加入的文字也没有显示出来,故推测是手机自带的浏览器不支持打开本地文件(file:///storage/sdcard2/test.html),于是我又打开手机上的php服务器软件,将文件改为index.php再次用自带浏览器打开时(http://127.0.0.1:8080),即显示正常了。但是意外间发现,是自带浏览器不能打开内存卡上的文件(已授予相关权限),故显示空白,而可以打开机身存储空间内的文件,因此自带浏览器也是能够正确显示base64图片的。

所以,个人的结论是,题主的测试方法有误,或者问题思考方向不对,还请重新测试。如有疑问可在下方评论留言。

附测试环境,Samsung Galaxy A系, Android 6.0, unrooted.

test.html:
<html><body><img src="data:image/png;base64, .. /">Test it!</body></html>
测试文件下载地址(已改后缀为.bak)
http://qfs.mobi/f3668004
最开始用的是jpg图像,后来又换成png格式,结果是相同的。

测试结果截图:
1.Firefox
Image
2.HTML viewer
Image
3.自带,文件在内置存储
Image
4.自带,文件在内存卡上
Image
5.利用php服务器软件进行测试
Image
Image

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题