На сайте PHP единственная реальная проверка, которую они предлагают, - это использование is_uploaded_file()
или move_uploaded_file()
, здесь . Конечно, вы обычно не хотите, чтобы пользователь загружал файлы любого типа по разным причинам.
Из-за этого я часто использовал "строгую" проверку типов пантомимы. Конечно, это очень некорректно, потому что часто MIME-типы неверны, и пользователи не могут загрузить свой файл. Это также очень легко подделать и / или изменить. И вместе с тем каждый браузер и операционная система работают с ними по-разному.
Другой способ - проверить расширение, которое, конечно, изменить проще, чем mime-тип.
Если вам нужны только изображения, используйте что-то вроде getimagesize()
.
А как насчет других типов файлов? PDF-файлы, документы Word или файлы Excel? Или даже текстовые файлы?
Редактировать: Если у вас нет mime_content_type или Fileinfo , а система ("file -bi $ uploadedfile") выдает неправильный тип файла, какие еще варианты есть?