Возможный дубликат:
Как проверить типы файлов загруженных файлов на PHP?
У меня есть функция загрузки на моем сайте, и только загрузка PDF разрешена. Как проверить, что загруженный файл является только pdf. Как и getimagesize()
чтобы записывать файлы изображений. Есть ли способ проверить файл, который обязательно будет PDF. мой код показан ниже.
$whitelist = array(".pdf"); foreach ($whitelist as $item) { if (preg_match("/$item\$/i", $_FILES['uploadfile']['name'])) { } else { redirect_to("index.php"); } } $uploaddir='uploads/'; $uploadfile = mysql_prep($uploaddir . basename($_FILES['uploadfile']['name'])); if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) { echo "succussfully uploaded"; }
в этом redirect_to
и mysql_prep
есть функция, определенная мной. Но тип mime можно изменить с помощью headers.So есть ли способ проверить файл как orignal pdf?
Вы можете проверить тип MIME файла с помощью функций информации о файлах PHP. Если он возвращается с типом 'application / pdf', то он должен быть PDF.
Функции информации о файлах были добавлены в PHP 5.3, но до этого вы можете использовать функцию mime_content_type .
Найдите магический номер PDF, открыв файл и прочитав первые несколько байтов данных. Большинство файлов имеют определенный формат, а файлы PDF начинаются с % PDF .
Вы можете проверить первые 5 символов файла, если они равны «% PDF-», это, скорее всего, настоящий PDF (однако это не подтверждает окончательно, что это файл PDF, так как любой файл может начинаться с этих 5 символов ). Следующие 4 символа в правильном файле PDF содержат номер версии (т.е. 1.2).
mime_content_type('file.ext');
mime_content_type ()