Вы не должны доверять $_FILES['upfile']['mime']
, проверьте тип MIME самостоятельно. Для этой цели вы можете использовать расширение fileinfo
, включенное по умолчанию с PHP 5.3.0.
$fileInfo = new finfo(FILEINFO_MIME_TYPE);
$fileMime = $fileInfo->file($_FILES['upfile']['tmp_name']);
$validMimes = array(
'zip' => 'application/zip',
'rar' => 'application/x-rar',
);
$fileExt = array_search($fileMime, $validMimes, true);
if($fileExt != 'zip' && $fileExt != 'rar')
throw new RuntimeException('Invalid file format.');
ПРИМЕЧАНИЕ. Не забудьте включить расширение в ваш php.ini
и перезагрузите сервер:
extension=php_fileinfo.dll