ФорумПрограммированиеPHP для идиотов → Как определить тип файла

Как определить тип файла

  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 11 августа 2008 г. 7:57

    Есть ли функция определения типа файла (например "image")? не загружаемого, а уже лежащего на сервере

    п.с. кроме регулярок
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 11 августа 2008 г. 8:40, спустя 42 минуты 56 секунд

    http://ru2.php.net/mime_content_type

    Можно просто взять расширение из pathinfo() и пропустить его через switch.
  • Zona7o

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 11 августа 2008 г. 8:53, спустя 13 минут 4 секунды

    имхо, по расширению файла нелогично определять тип файла - правильно будет через mime скорее всего.

    для картинок использую gd ($img=getimagesize("path_to_img");$img['mime']=…)
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 11 августа 2008 г. 9:50, спустя 57 минут 29 секунд

    смотря для каких целей. Автор ведь уточнил:
    не загружаемого, а уже лежащего на сервере
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 9:51, спустя 25 секунд

    а я бы еще считал первых 10 (или сколько там отведено) байт и прочел какого он типа
  • Zona7o

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 11 августа 2008 г. 10:07, спустя 16 минут 34 секунды

    а я бы еще считал первых 10 (или сколько там отведено) байт и прочел какого он типа

    а если я в первые эти отведенные запишу тип одного файла, а в остальном будет php-скрипт?

    2Timur
    так, getimagesize работает с файлами на сервере.
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 10:25, спустя 17 минут 13 секунд


    а я бы еще считал первых 10 (или сколько там отведено) байт и прочел какого он типа

    а если я в первые эти отведенные запишу тип одного файла, а в остальном будет php-скрипт?
    ну и что из этого?
    разве картинки будут запускаться как php скрипт без соответствующих конфигов сервера?
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 10:30, спустя 5 минут 38 секунд

    а если я в первые эти отведенные запишу тип одного файла, а в остальном будет php-скрипт?

    а потвоему mime-type откуда инфу о файле берет?! из воздуха?
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 10:34, спустя 3 минуты 58 секунд


    а если я в первые эти отведенные запишу тип одного файла, а в остальном будет php-скрипт?

    а потвоему mime-type откуда инфу о файле берет?! из воздуха?
    из интернета!!!!!!!11111
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 10:55, спустя 20 минут 43 секунды

    md5, 100 працентафф
  • Zona7o

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 11 августа 2008 г. 11:24, спустя 28 минут 38 секунд

    а потвоему mime-type откуда инфу о файле берет?! из воздуха?

    честно, понятия не имею) но видно из каких-то заголовков.

    ну и что из этого?
    разве картинки будут запускаться как php скрипт без соответствующих конфигов сервера?

    на phpbb была же уязвимость,когда вместо аватрки шеллы заливали.
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 11:44, спустя 20 минут 50 секунд

    Zona7o, и чем проверялась аватарка? майм типом?
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 11 августа 2008 г. 11:49, спустя 4 минуты 34 секунды

    /* какой же я противный… */
    Поправочка, getimagesize не использует GD ;-)
    А вообще, по-моему скромному мнению, использовать эту функцию - лучший вариант. Она проверяет сам файл. Как правило в первых нескольких байтах файла "зашита" информация. Так у джэйпэга там есть "JFIF". Остальные не помню :-)
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 11 августа 2008 г. 12:20, спустя 30 минут 39 секунд

    KENDO, а если у тебя не картинка а zip?
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 11 августа 2008 г. 14:49, спустя 2 часа 29 минут 44 секунды

    2Timur
    так, getimagesize работает с файлами на сервере.

    ну да. И что? Я getimagesize даже и не упоминал вроде 0_o

    а потвоему mime-type откуда инфу о файле берет?! из воздуха?

    а разве не тупо из расширения файла? Если взять zip-архив, переименовать расширение в .gif и запросить его через браузер, то в заголовках получим "Content-Type: image/gif".

    И вообще, где топикстартер? Кто сказал, что ему нужно проверять файлы, пришедшие от пользователей?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!