Как вывести список изображений из каталога? - PullRequest
0 голосов
/ 31 августа 2010

Я пытаюсь показать все изображения в указанном каталоге.

В следующем коде перечислены все разрешенные имена файлов:

  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 istead. Но я не очень преуспел в этом.

Нужно ли использовать /usr/share/misc/magic для получения информации о файле? Я не могу использовать библиотеку GD?

Я посмотрел много примеров, но они старые и не очень хорошо работают.

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 31 августа 2010

, чтобы получить размер и тип изображения MIME его просто,

используйте функцию: getimagesize

использует как:

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

Возвращает массив из 7 элементов.

Индекс 0 и 1 содержит соответственно width и height изображения.

Индекс 2 является одной из IMAGETYPE_XXX констант, указывающих тип изображения.

используя размер файла указать размер в байтах

0 голосов
/ 31 августа 2010

Чтобы развернуть пост Хаима Эвги, используйте getimagesize () , чтобы получить размеры и тип изображения в массиве.Затем используйте image_type_to_mime_type () в коде типа изображения, чтобы получить MIME:

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