【问题标题】:PHP - guess MIME type of image stored in variablePHP - 猜测存储在变量中的图像的 MIME 类型
【发布时间】:2016-02-08 14:01:19
【问题描述】:

我将小图像存储在数据库中(MySQL,blob),所以当我检索任何图像时,它都在变量中。

我的计划是在背景图片中显示带有 CSS 的 base64 编码的图片:background: url(data:image/…

要执行此操作,我需要检测变量中的 MIME 类型的图像。有exif_imagetype,但它只适用于文件。

有什么方法可以检测不是存储为文件而是存储在变量中的 MIME 类型的图像?

【问题讨论】:

  • 为什么不在上传时存储 mime 类型?
  • @DanielA.White 我可以,但是有没有办法在不将任何不必要的数据存储在数据库中的情况下即时执行 MIME 检测?
  • 我不会认为它“不必要”,这将是一种优化。
  • @DanielA.White 同意你的观点,它将有助于优化。但是,无论如何,我想知道是否可以即时检测图像 MIME。
  • 如果不将数据保存在DB中,并且使用imageGD功能检测MIME类型,则太慢了。而且这没有优化。

标签: php mysql image blob mime


【解决方案1】:

您可以使用getimagesizefromstring 获取有关图像 blob 的信息,包括图像的 MIME 类型。它从 PHP 5.4 开始可用。

不过,我还建议将 MIME 类型存储在数据库中。启发式方法“昂贵”,并且在数据库中存储几个字节比一遍又一遍地猜测图像类型要有效得多。

【讨论】:

  • 这正是我想要的。谢谢@lxg!
猜你喜欢
  • 2013-01-16
  • 2013-10-04
  • 2016-06-19
  • 2010-10-13
  • 2020-09-13
  • 1970-01-01
  • 2015-12-04
  • 2016-05-20
相关资源
最近更新 更多