|
|
|
|
|
для: Bvz
(12.11.2010 в 12:34)
| | Что вы имеете в виду под заголовком? | |
|
|
|
|
|
|
|
для: Киналь
(12.11.2010 в 12:36)
| | а токже под расширением, и под файлом. | |
|
|
|
|
|
|
|
для: Trianon
(12.11.2010 в 13:04)
| | в этой теме http://softtime.ru/forum/read.php?id_forum=1&id_theme=76604&page=1
sim5 писал:
...
Для изображений уже существует функция, которая обеспечит более надежную проверку типа загружаемого изображения - getimagesize(), а можно еще с помощью функций GD проверить на "мусорность" файл загружаемый. Для остальных типов файлов - это проверка их по заголовку.
|
вот и хочу понять как это делаетс, т.е. загружается файл на сервер во временную папку прежде чем делать с ним манипуляции, хочется выяснить какое у него расширение, и как я понял по заголовку самый надежный, как это сделать? | |
|
|
|
|
|
|
|
для: Bvz
(12.11.2010 в 13:22)
| | $_FILES[$name]["type"] | |
|
|
|
|
|
|
|
для: Красная_шляпа
(12.11.2010 в 13:24)
| | Это и есть заголовок файла? | |
|
|
|
|
|
|
|
для: sim5
(12.11.2010 в 13:30)
| | я знаю что нет, и не знаю как ))) | |
|
|
|
|
|
|
|
для: Bvz
(12.11.2010 в 13:33)
| | Не все файлы имеют заголовки, например обычный текстовый файл. Чтобы проверить файл по заголову, нужно знать формат этого файла, считать его заголовок, провести "ревизию" файла согласно ему, убедившись, соответствует ли заявленное расширение, действительно типу файла. | |
|
|
|
|
|
|
|
для: sim5
(12.11.2010 в 13:42)
| | а как это выглядит в виде кода или какие функции? | |
|
|
|
|
|
|
|
для: Bvz
(12.11.2010 в 13:52)
| | Что выглядит, заголовки файлов? Это бинарные данные описывающие параметры файла. А уж что у вас за код будет и какие функции для этого, этого я не знаю, какие напишите, такие и будут. | |
|
|
|
|
|
|
|
для: sim5
(12.11.2010 в 14:50)
| | как работать с заголовками и как их посмотреть? | |
|
|
|
|
|
|
|
для: Bvz
(12.11.2010 в 15:04)
| | Читать о типах файлов, их заголовки и структура описаны в различной литературе и в сети. | |
|
|
|
|
|
|
|
для: sim5
(12.11.2010 в 15:08)
| | я правильно понял, что это можно сделать с помощью header()? | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 09:31)
| | Каким образом функция посылающая заголовки может прочитать заголовок файла?
Это нужно делать, прочитав N-байт начала файла и проанализировать эти бинарные данные, и если они соответствуют формату файла, который вы ожидаете, значит это есть искомый файл. | |
|
|
|
|
|
|
|
для: sim5
(06.12.2010 в 10:28)
| | а как это сделать? какими функциями в php? | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 11:28)
| | Искать надо среди функций для работы с изображениями.
Одна функция читает первые байты изображения, вторая - читает заголовки JPEG или TIFF-файлов. | |
|
|
|
|
|
|
|
для: Лена
(06.12.2010 в 11:32)
| | для изображений я использую getimagesize а мне интересно для не графических файлов | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 11:42)
| | У файлов нет заголовков - вас ввели в заблуждение.
Вернее есть, но такие, что информацию о типе не несут.
Общего рецепта формально строгого определения типа файла по его содержимому тоже нет. | |
|
|
|
|
|
|
|
для: Trianon
(06.12.2010 в 11:48)
| | я оттолкнулся от совета sim5, поэтому и интересуюсь, есть ли более безопасная и корректная проверка? | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 11:58)
| | Есть - Опираться на знания о структуре информации для каждого конкретного типа файла.
Собственно то, о чем Вам sim5 и пытался сказать.
Но для этого нужны знания, а не функции. | |
|
|
|
|
|
|
|
для: Trianon
(06.12.2010 в 12:01)
| | >Есть - Опираться на знания о структуре информации для каждого конкретного типа файла.
>Собственно то, о чем Вам sim5 и пытался сказать.
>Но для этого нужны знания, а не функции.
но чтоб получить информацию, ее каким-то образом надо получить, вот я и спрашиваю, как? | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 12:06)
| | file_get_contents()
Для крупных файлов со сложной струкрутой - fopen fseek fread fclose | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 12:06)
| | Откройте в HEX редакторе, например, изображение, и просмотрите первые 20-40 байт кода. Вот это и есть заголовок файла изображения. Что эти байты означают для каждого типа изображения можно найти и почитать в сети. Такие заголовки имеют файлы, например, архивов, видео, звуки, исполняемые файлы и др. Таких заголовков описывающих данный файл вы не найдете в текстовом файле, в том же php-скрипте например. | |
|
|
|
|
|
|
|
для: sim5
(06.12.2010 в 12:16)
| | спасибо, а как php может с этим взаимодействовать? | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 12:38)
| | PHP никак, у него кроме инструментария считывания бинарных данных в определенном формате ничего нет. Не PHP должен думать и взаимодействовать, а вы. ;-) | |
|
|
|
|
|
|
|
для: sim5
(06.12.2010 в 12:52)
| | дайте зацепку, плиз уже и не знаю, думать я но взаимодействовать неким инструментом.
кстати посмотрел через HEX редактор как всегда jpg отличился :) | |
|
|
|
|
|
|
|
для: Bvz
(06.12.2010 в 12:59)
| | Вы рыбачить собираетесь, знаете на какую рыбу, значит сумеете и нужную оснастку выбрать, так ведь? А чем РНР отличается от снастей рыбака, ничем - мануал, в мануале все описано, и если вы знаете, что надо делать, значит сможете найти необходимую "оснастку" и для этой "рыбалки". Учиться надо выбирать инструменты для работы. Попробуйте сами найти, без подсказки. | |
|
|
|
|
|
|
|
для: Bvz
(12.11.2010 в 12:34)
| | $pathinfo = pathinfo($path);
$ext = $pathinfo["extension"]; | |
|
|
|
|
|
|
|
для: Красная_шляпа
(12.11.2010 в 13:22)
| | так можно файлу задать любое расширение и это функция его покажет | |
|
|
|