在 PHP 中从 MySQL 中提取 BLOB 图像数据

2023-12-07

我正在阅读一些关于如何将图像作为二进制上传到数据库而不是将它们放在服务器本身上的教程,我让它像这样工作:

PHP:

$image = chunk_split(base64_encode(file_get_contents($tmpfile)));
    mysql_query("INSERT INTO images (`img_location`, `caption`, `user`, `genre`, `when`) VALUES ('$image', '$caption', '$id', '$genre', '$when')");

我的问题是你现在如何从数据库中提取它,我已经阅读了几种方法,尝试了所有方法,无法弄清楚,我没有收到 MySQL 错误,这就是我的尝试方法:

$get_pics = mysql_query("SELECT * FROM images WHERE user='$id' ");
while($get_pics2 = mysql_fetch_array($get_pics))
{
$sixfour_enc = base64_decode($get_pics2['img_location']);

$new .= "<img src=\"".$sixfour_enc."\" >";
}

这有效......有点,发生的事情是它在 IMG 标签中打印出原始二进制文件。

如何让它再次编译为可读图像?另外,将图像存储在数据库中是愚蠢的吗?我应该像平常一样将它们存储在服务器上吗?

谢谢 -麦克风


如果您愿意,您可以将图像存储在数据库中(尽管将它们存储为文件也没有什么问题,选择适合您情况的任何内容),但将原始二进制数据存储在 BLOB 中(即不要使用64 进制)。您可以嵌入从中获得的二进制数据file_get_contents直接在您的查询中,前提是您使用正确的转义函数(mysql_real_escape_string在你的情况下)首先。

至于图像的输出,您可以按照现在的方式进行操作,但是您必须以 base64 编码并使用dataURI 方案如下:

echo '<img alt="embedded image" src="data:image/png;base64,' . chunk_split(base64_encode($get_pics2['img_location'])) . '">';

请注意,嵌入图像数据有一些优点和缺点。需要注意的一些重要缺点是 base64 编码的严重开销(比原始编码大约 33%)和潜在的缓存问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中从 MySQL 中提取 BLOB 图像数据 的相关文章

  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • 如何使用 PHP 构建正确的 SOAP 请求

    我需要格式化 构建此 SOAP 服务 的请求 http api notificationmessaging com NMSOAP NotificationService wsdl http api notificationmessaging
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 如何从网站网址中隐藏 .html 扩展名

    我知道这个问题以前曾被问过 但有人知道隐藏 html 扩展名的好方法吗 我已经尝试了许多代码和许多答案https stackoverflow com https stackoverflow com 但我没有看到结果 那是我再问你一次 我有一
  • 使用 PHP/linux 将文件合并为单个 PDF

    我正在研究如何将多个 PDF 合并为一个 PDF 我正在寻找一个图书馆可靠且坚固尽可能 最好有一个库可以保留书签 鬼脚本 http pages cs wisc edu ghost 可以在保存书签的位置进行连接 但我遇到了麻烦 在一种情况下它
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • Facebook PHP-SDK 页面刷新后似乎丢失了 userID

    我似乎登录工作正常 我可以登录 接受应用程序 第一次 然后显示用户信息 例如姓名 图片 等 然而 当我刷新页面时 userid 又回到 0 我必须再次登录 我不确定问题是什么 我必须在每次页面加载时重新启动它还是什么 我不知道 我会发布一些
  • 通过互联网IP地址从一台计算机访问xampp到另一台计算机

    我试图从另一台计算机访问我的 xampp 它显示为禁止错误 然后我在 google 上搜索答案 因为他们告诉在 apache 文件夹中的 httpd conf 文件中更改一些设置 如下所示 Order Deny Allow Deny fro
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • 使用会话 php 创建 cookie?

    我使用会话来登录我网站中的用户 问题是 我想让用户remember密码 因此关闭 打开浏览器后他们不需要再次登录 我需要使用 cookie 和 session 来实现它吗 my code user POST user pass POST p
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • PayPal 网关已拒绝请求。安全标头无效(#10002:安全错误 Magento

    在 magento 中增加 PayPal 预付款 我已填写 magento admin 中的所有凭据 但是当我进入前端并单击 pay pal 按钮时 它给出了 PayPal 网关已拒绝请求 安全标头无效 10002 安全错误 我用谷歌搜索了
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常

随机推荐

  • JavaScript 函数中的 this 指的是什么?

    function Box width height this width width this height height var myBox new Box 5 5 是什么new从技术上讲 关键字在这里做什么 它正在创建一个新功能吗 或者
  • django 1.7 migrate 出现错误“表已存在”

    我正在尝试应用迁移 但收到错误 django db utils OperationalError 1050 表 customers customer 已经存在 我通过发出以下命令得到这个 python manage py migrate 我
  • Spring 中的 PropertyPlaceHolder

    我们在 spring 中访问一个 java 属性 如下所示
  • CakePHP元素错误处理问题

    我的登录和注册表单位于引用用户控制器以及 login 和 register 操作的元素中 例如 当我在模式或页面控制器操作中使用此元素时 当用户出现验证错误 即模型验证 时 它会重定向到登录 注册操作页面 而不是更新元素 我意识到我可以使用
  • 滚动视图中作为列表项的内容在滚动时消失(swiftui),为什么?

    Asperi 的解决方案 ScrollView id UUID uuidString 列表项中有一个滚动视图 当我滚动列表时 滚动视图中的内容消失 我认为问题在于滚动视图和列表可重用项目冲突 如果我删除滚动视图 只是 hstack 什么都不
  • 在控制器中运行 rake 任务

    我想在我的控制器中运行 rake 任务 有什么办法可以做到这一点吗 我同意 ddfreynee 的观点 但如果你知道你需要什么 代码可能如下所示 require rake Rake Task clear necessary to avoid
  • 在 Google 表格中查找评论的位置

    我能够检索电子表格的所有评论 但是 我想知道评论所锚定的确切工作表和单元格范围 我查看了 Comments list 方法返回的评论资源的锚属性中的值 var commentsResource Drive Comments list ss
  • Gmail 中的 while(1) 有何作用[重复]

    这个问题已经存在了 可能的重复 为什么要有 while 1 在 XmlHttpRequest 响应中 如果您查看 Gmail 在更新电子邮件列表时向服务器发出的 XHR POST 请求 您将看到每个响应都以以下内容开头 while 1 v
  • PHP:当多个表单字段共享相同的名称和 ID 时使用 post

    这个标题可能没有多大意义 但我拥有的是动态生成的表单 我连接到产品表 取出其中的名称 然后 我创建一个表单 显示产品 旁边有一个复选框和文本框
  • 强制 free() 将 malloc 内存返回给操作系统

    似乎即使在我释放了由 分配的 Linux 进程的所有内存之后malloc 内存仍为进程保留 不会返回给操作系统 Running valgrind massif默认情况下 工具不会显示任何泄漏 Running valgrind with pa
  • 如何在 xamarin iOS 中使用 AVPlayerViewController (AVKit) 播放视频

    如何在xamarin iOS中使用AVPlayerLayer和AVPlayerViewControler播放视频 playerItem new AVPlayerItem new NSUrl https clips vorwaerts gmb
  • 对 Javascript 代码进行反混淆处理,使其再次可读[重复]

    这个问题在这里已经有答案了 我讨厌把这个带到这里 在学习混淆 JS 代码的同时 我对代码进行了编码 然后在没有任何备份的情况下重写了原始代码 以下是我的混淆代码 var 0xf17f x28 x29 x64 x69 x76 x63 x72
  • 如何在 R 中导出 HTML 表格并控制线条边框?

    R 中是否有任何函数允许将 HTML 表格导出为 R Markdown 或相关编织文档的一部分 并允许对表格行边框进行详细控制 例如 想象一个这样的矩阵 x lt matrix c M F Good 23 17 Bad 23 4 nrow
  • 将矢量资源导入 Android Studio 时出错

    我在 Illustrator 中创建了一个简单的播放按钮图像 将其保存为 SVG 使用在线 SVG to Drawable 转换器创建该文件的 xml 然后尝试使用 Android Studio 的 Vector Asset 工具将该文件导
  • jQuery DataTables - 子行和“未定义不是函数”

    我正在努力将子行添加到数据表中 但对于在不同表和页面上完美运行的一行代码 出现 类型错误 未定义不是函数 有任何想法吗 HTML div class table responsive h2 class sub header Account
  • 限制滚动和缩放 Google Maps Android API v2

    我已经添加地面叠加层映射并希望限制该区域内的滚动和缩放 如何限制 Android 谷歌地图上的某些范围内的滚动 是否可以从 MapFragment 获取即时运动点 请帮我 约束相机 终于 作为一项功能添加到了发布的版本中谷歌播放服务 9 4
  • Sublime Text 3 sftp插件代理设置

    我已经为 Sublime Text 3 安装了 sftp 插件 是否可以使用代理配置 sftp 我正在寻找任何代理设置 有人知道这件事吗 Use ProxyCommand inside sftp flags 这样的事情对我有用 Destin
  • android NDK可以编译内核模块源吗?

    我想为 android 制作一个动态加载的内核模块 我不想安装linux 我只有cygwin和android NDK 是的 可以使用 NDK 构建内核模块 请注意 这在 Linux 系统上效果最好 据我所知 Linux x86 64 是受支
  • 如何在Scheme中计算一个数的各位数字之和?

    我想计算Scheme中一个数字的数字之和 它应该像这样工作 gt sum of digits 123 6 我的想法是改变数字123串起来 123 然后将其转换为列表 1 2 3 然后使用 apply 1 2 3 to get 6 但不幸的是
  • 在 PHP 中从 MySQL 中提取 BLOB 图像数据

    我正在阅读一些关于如何将图像作为二进制上传到数据库而不是将它们放在服务器本身上的教程 我让它像这样工作 PHP image chunk split base64 encode file get contents tmpfile mysql