PHP может использовать fileinfo и MIME Magic (был удален из PHP 5.3.0) для определения типа файлов MIME (как и метод Kohanas File::mime()
).
В случае, если ни один из этих 2 недоступен, этот метод попытается найти тип MIME, используя расширение файлов, которое может быть крайне ненадежным.
Поскольку вы пытаетесь только проверить какую-либо загрузку, я бы предложил использовать Upload
методы для ее проверки:
$validation = Validation::factory($_FILES)
->rule('Filedata', 'Upload::not_empty')
->rule('Filedata', 'Upload::valid')
->rule('Filedata', 'Upload::size', array(':value', '4M'))
->rule('Filedata', 'Upload::type', array(':value', array('bmp','jpg','jpeg','png')))
->rule('Filedata', 'Upload::image', array(':value', 1920, 1080));
Обратите внимание, что Upload::image()
доступен начиная с версии 3.2.0 (вы можете импортировать его и в более старые версии). Это проверка, которую я лично использую для загрузки Uploadify, поэтому она должна работать нормально.