【问题标题】:how to check a file path is an image or not in php?如何在php中检查文件路径是否为图像?
【发布时间】:2011-01-08 05:05:27
【问题描述】:

我有一个存储 images.documents、pdf 等文件路径的表...我的查询是

Select File_Paths from Uploads

现在我如何使用PHP检查文件路径是否为图像...如果是图像我必须查看它或下载它.......

【问题讨论】:

标签: php filepath


【解决方案1】:

古老的getimagesize() 是一种判断文件是否包含有效图像的合理方法。您只需要针对FALSE 测试它的返回值:

<?php

$is_picture = getimagesize($filename)!==FALSE;

?>

当然,最好只执行一次并将结果存储到数据库中。

如果这不是您想要的,请澄清。

【讨论】:

  • 值得注意的是,如果文件不可读,getimagesize() 会抛出异常,所以更好的做法是:$is_picture = is_file($filename) &amp;&amp; is_readable($filename) &amp;&amp; getimagesize($filename)
【解决方案2】:

您可以从查询中获取路径的扩展名。例如(使用 MySQL):

$result = mysql_query('Select File_Paths from Uploads');
$extArray = array('gif', 'jpg', 'jpeg', 'png');
while ($row=mysql_fetch_row($result)) {
  $extension = substr($row[0], strrpos($row[0], ".")+1);
  if (in_array($extension, $extArray)) {
    // Do something with image
  }
  else {
    // Download other files
  }
}

【讨论】:

    【解决方案3】:

    您需要像这样检查它们的扩展:

    if (strpos($File_Paths, 'jpg') !== false || strpos($File_Paths, 'gif') !== false)
    {
      // yes there is an image.
    }
    

    【讨论】:

      【解决方案4】:

      使用file info 函数。

      【讨论】:

      • 除了那个链接上的例子吗?
      • file_info 函数是您确定图像类型的典型选择吗?我看到 MIME 类型已被弃用。
      • @rrrfusco:mime_content_type() 已弃用。其他功能没有。
      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多