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