如何列出目录中的图像?

时间:2010-08-31 10:00:27

标签: php fileinfo imagelist

我正在尝试显示指定目录中的所有图片。

以下代码列出了所有允许的文件名:

  function getDirectoryList() 
  {

    // create an array to hold directory list
    $results = array();

    // create a handler for the directory
    $handler = opendir($this->currentDIR);

    // open directory and walk through the filenames
    while ($file = readdir($handler)) {

      // Make sure we get allowed images types
      if ($this->allowedFileType($file,$this->allowedImageTypes) )
      {
        $results[] = $file;
      }
    }

    // tidy up: close the handler
    closedir($handler);

    // done!
    return $results;
  }

  (...)

 $images = getDirectoryList();

 foreach($images as $img) {
   echo "<li>".$img."</li>"; 
 } 

如何获取文件大小和MIME类型? 我读到mime_content_type已被弃用,我应该使用finfo_file。但我对此并不是很成功。

我是否必须使用/usr/share/misc/magic来获取文件信息?我不能使用GD库吗?

我看了很多例子,但它们已经老了,效果不好。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

使图像的大小和mime类型变得简单,

使用功能:getimagesize

使用如下:

list($width, $height, $type, $attr) = getimagesize("img/myimg.jpg");

返回一个包含7个元素的数组。

索引0和1分别包含图像的宽度高度

索引2是指示图像类型的 IMAGETYPE_XXX 常量之一。

使用filesize给出字节大小

答案 1 :(得分:0)

要扩展Haim Evgi的帖子,请使用getimagesize()检索数组中的维度和图像类型。然后,在图像类型代码上使用image_type_to_mime_type()来检索MIME:

list ($fileWidth, $fileHeight, $fileType) = getimagesize($filename);
$fileMimeType = image_type_to_mime_type($fileType);