Определение типа файла

Тема в разделе "PHP программирование", создана пользователем MiXOH, 11 янв 2010.

  1. MiXOH

    MiXOH Гость

    Репутация:
    0
    Приветствую уважаемые форумчане!

    Мне необходимо при загрузке файла на сервер определить его тип, чтобы ограничить загрузку только файлов определенного типа.
    Значение, хранимое в переменной $_FILES["..."]["type"] не подходит, т.к. оно определяет тип файла по расширению или как-то так, но не определяет реальный тип файла.

    Пробовал использовать функцию mime_content_type, но выдает ошибку Warning: mime_content_type() [http://www.php.net/mime_magic]: mime_magic not initialized in ...
    Почему не могу понять, вроде все установлено.

    Может, кто поможет разобраться, почему не работает функция mime_content_type либо подскажет какой-нибудь еще способ определить тип файла.

    Заранее спасибо.
     
  2. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.431
    Симпатии:
    40
    Почему не работает - хз. Если путь к конфигу mime прописан верно, и библиотека подключена - должно работать.
    Ну а альтернативный путь - это сравнивать заголовок файла с сигнатурами(что и делает эта ф-я) самостоятельно. т.е. читать первые N байт из файла и сравнивать с нужной(или не нужной) для тебя сигнатурой.. Сигнатуры файлов можно найти ТУТ
     
  3. MiXOH

    MiXOH Гость

    Репутация:
    0
    Спасибо за альтернативный путь, если не разберусь, почему не работает, придется наверно им воспользоваться.

    Пути прописаны правильно. При установке РНР модули необходимые для функционирования mime_content_type не были установлены. Я их добавлял позднее, может быть в этом дело, чего-то не хватает.
    В мануале прочитал, что вроде бы нужен PECL для работы этой функции. Так ли это?
     
  4. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.431
    Симпатии:
    40
    Да, верно.
    Вобщем, вот примерчик. Должно помочь)
    Код (PHP):
    <?php
    $filename="файл";
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    echo finfo_file($finfo, $filename) . "\n";
    }
    finfo_close($finfo);
    ?>
    Думай=)
     
Загрузка...

Поделиться этой страницей