Upload файлов: расширения

AlexFree

Новичок
Upload файлов: расширения

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

Baboon

Guest
Перед закачкой: жаваскрипт.
В рнр-скрипте: $_FILES["InputFileName"]["type"]
 

Bosha

Новичок
Но ето тоже не однозначно, я вот например только что столкнулся с тем, что пересылаемый вордовский файл определяется как application/octet-stream и соответственно проверка не работает. Єто наверное происходит из-за того что там есть картинки в самом документе.
Поправте плз если я не прав
 

crocodile2u

http://vbolshov.org.ru
Полно уже было тредов на эту тему.

Вариантов немного - либо перебрать все возможные MIME_types (но все равно их шлет браузер, и их можно подделать), либо проверять непосредственно расширение имени файла (еще проще подделать :)). Для картинок есть еще exif_... и getimagesize.
 

SiMM

Новичок
... либо проверять хотя бы сигнатуру - но это уже к описанию на заданный/заданные форматы.
 

Bosha

Новичок
Автор оригинала: crocodile2u
Нет, не из-за этого

-~{}~ 14.07.04 12:36:
Да, а из-за чего же тогда документ Word распознается как application/octet stream?
Я думал что это означает, что документ содержит бинарные данные и не может быть отнесен к определенным типам файлов. Наверное тут не стоит об этом дисскуссию проводить, но если коротко просветите, буду признателен.
 

AlexFree

Новичок
Всем спасибо за советы!
Кстати, rar-архивы тоже определяются как application/octet-stream.. и exe также.. как сделать, чтоб exe запретить закачивать, а rar можно?
 

SiMM

Новичок
Автор оригинала: Bosha
Я думал что это означает, что документ содержит бинарные данные и не может быть отнесен к определенным типам файлов.
Это ровным счётом ничего не значит.
Автор оригинала: AlexFree
Кстати, rar-архивы тоже определяются как application/octet-stream.. и exe также..
Ну и что?
как сделать, чтоб exe запретить закачивать, а rar можно?
Проверяй на сервере и не добавляй нежелательное. Хотя для удобства пользователя ДО КУЧИ (не следует читать как "достаточно") наверно было бы желательно дополнительно это делать средствами JS.
 

Bosha

Новичок
Я так понимаю что никто не хочет, или не может просветить почему документ Word распознается как application/octet stream?
 

fixxxer

К.О.
Партнер клуба
Потому что в mime.types по поводу m$word ничего не прописано. Апач/пхп не обязаны знать о всяких левых форматах.
 

Bosha

Новичок
Вопрос возник потому, что обычно я определял ворд файлы по типу application/msword, что было, скажем, удобно :)
Но сегодня столкнулся с тем что иногда файлы не загружаются потому, что тип некоторых обозначается как octet-stream. Значит от чего-то это зависит :)!!
 

Baboon

Guest
Сказал же он: некоторые файлы так определяются. Значит дело в файлах. Может разные версии ворда такое дают - я скорее так думаю.
 

neko

tеam neko
mod_mime_magic вам поможет
ну или частично поможет

или не поможет вообще
:)
 

su1d

Старожил PHPClubа
по-моему, таки лучше всего смотреть на сигнатуры файлов:
первые байты ЕХЕ-шника (DLL, SCR, etc.): "MZ"
RAR: "Rar!"
Zip: "PK"
для Ворда и иже с ним тоже есть свои известные (и неизменные!) сигнатуры. сейчас просто навскидку не припомню.
 

neko

tеam neko
в стандартной поставке они есть

-~{}~ 15.07.04 10:40:

ценность подобной проверки невелика кстати
 
Сверху