
本教程详细介绍了如何使用PHP从MySQL数据库中检索Base64编码的图片数据,并将其正确地嵌入到HTML页面中进行显示。我们将探讨常见的显示问题及其解决方案,包括数据库存储格式、PHP数据提取方法以及HTML 标签的正确使用,确保图片能够高效且准确地呈现在网页上。
理解Base64图片与数据URI
在web开发中,将图片直接嵌入到html或css中而无需单独的图片文件,通常通过base64编码实现。base64是一种将二进制数据转换为ascii字符串的编码方式。当图片被base64编码后,它通常会带有一个“数据uri”前缀,格式为 data:[][;base64],。例如,一张jpeg图片的base64编码可能以 data:image/jpeg;base64,/9j/4aaqsk… 开头。这个前缀告诉浏览器数据的类型和编码方式,使其能够直接解析并显示图片。
当我们将Base64编码的图片存储到MySQL数据库时,通常会选择 LONGBLOB 或 TEXT/LONGTEXT 类型。如果存储的是带有 data URI 前缀的完整Base64字符串,那么在从数据库读取并显示时,无需再次进行Base64编码。
常见的图片显示问题
在尝试从数据库中取出Base64图片并显示时,开发者常遇到以下问题:
图片显示为破碎图标或空白: 这通常是由于 标签的 src 属性值不正确导致的。可能的原因包括:数据库中存储的Base64字符串不完整或损坏。PHP在提取数据时发生了错误,导致 src 属性为空或包含非Base64数据。数据URI前缀(如 data:image/jpeg;base64,)缺失或错误。对已经Base64编码的数据再次进行了 base64_encode() 处理。从数据库查询结果中提取数据的方式不正确,例如,尝试对整个 $row 数组进行 implode() 或 substr() 操作,而不是直接访问包含Base64数据的特定列。
数据库设计与数据存储
为了有效地存储Base64编码的图片,MySQL中的 Video 表结构可以如下:
CREATE TABLE `video` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Video` longblob NOT NULL, -- 存储Base64编码的图片字符串 PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Video 列使用 longblob 类型,因为它能够存储非常大的二进制数据,非常适合Base64编码后的图片字符串(即使是文本形式)。重要的是,确保Arduino或其他上传机制在将图片存入数据库时,已经包含了完整的 data URI 前缀。
立即学习“PHP免费学习笔记(深入)”;
例如,数据库中 Video 列的数据可能看起来像这样:
data:image/jpeg;base64,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gooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWCkzQ0MKKLh1EpaoQUc0ALzSUgCloASlNDASg1QgpKkYtFMApaQCUUwEooAWkpALSUAFFACUUXAKKLggooASilYAooAWloBiUGgBKKAF7UlAUUUCCkpgGKKVwCigQUUhhSUgEoqiQooZRZO31xTKL33DUU5xnHNIaLDEajFWMAaKgkXrSZoWgxe9LmgGhOlH8NHqAlL3okAvekzQMOoNJnigkWlpXBBnmimNhuozQFgooTAXvRSsAgpabEJ3paGOwUUA9ApaBWC
以上就是PHP与MySQL:在HTML中显示Base64编码图片教程的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1293543.html
微信扫一扫
支付宝扫一扫