1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "Web - программирование", создана пользователем 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.432
    Симпатии:
    40
    Почему не работает - хз. Если путь к конфигу mime прописан верно, и библиотека подключена - должно работать.
    Ну а альтернативный путь - это сравнивать заголовок файла с сигнатурами(что и делает эта ф-я) самостоятельно. т.е. читать первые N байт из файла и сравнивать с нужной(или не нужной) для тебя сигнатурой.. Сигнатуры файлов можно найти ТУТ
     
  3. MiXOH

    MiXOH Гость

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

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

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

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

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