0

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

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

  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 库吗?

我看过很多例子,但它们很旧并且效果不佳。

任何帮助表示赞赏。

4

2 回答 2

1

要获得图像的大小和 mime 类型很简单,

使用函数:getimagesize

像这样使用:

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

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

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

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

使用filesize以字节为单位给出大小

于 2010-08-31T10:04:44.583 回答
0

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

list ($fileWidth, $fileHeight, $fileType) = getimagesize($filename);
$fileMimeType = image_type_to_mime_type($fileType);
于 2010-08-31T10:16:19.263 回答