【问题标题】:howto determine image type如何确定图像类型
【发布时间】:2011-07-06 14:49:25
【问题描述】:

我有来自blob 数据库字段的图像。 有什么方法可以在不保存的情况下检查字段的 mime 类型?

getimagesize() and mime_content_type()

需要文件名...

我想做这样的事情:

<img \n" . 'src="data:image/gif;base64,' . $base64 .
          '" alt="base64 img" width="80" height="15" />

【问题讨论】:

  • 没有文件名??你是怎么得到信息的???

标签: php html mime-types


【解决方案1】:

当您将文件数据插入数据库时​​,您确实应该保存 MIME 类型。检测并不完美,至少速度较慢。

无论如何:

$mime_type = finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE);

发件人:Detecting image type from base64 string in PHP

【讨论】:

    【解决方案2】:

    您可以检查二进制文件中的前几个字节来确定这一点。这称为检查“文件签名”。

    以下是我用来编写自己的代码的一些有用链接:

    【讨论】:

      【解决方案3】:

      据我所知,您不能这样做。这实际上是您应该始终将图像类型与 blob 图像数据一起存储在数据库中的原因。

      但基本上你可以只打印 blob 数据并设置标题以在浏览器中显示图像。

      header ("Content-type: image/jpeg");
      $sql = "SELECT blobfield FROM table WHERE ...";
      $result = mysql_query($sql, $conn);
      $img = mysql_fetch_row($result);
      print $img[0];
      

      【讨论】:

        【解决方案4】:

        这是可能的,但您必须对可能遇到的图像类型有所了解。例如,GIF 在数据的前三个字节中显示“GIF”。

        http://www.onicos.com/staff/iz/formats/gif.html

        使用此信息,您可以检查来自 blob 的流并采取相应措施。不确定你是否关心那么多工作,但这是可行的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-08
          • 1970-01-01
          • 1970-01-01
          • 2018-08-10
          • 2015-10-25
          • 2012-05-05
          • 1970-01-01
          • 2023-03-26
          相关资源
          最近更新 更多