2015-02-19 2 views
-1

Мне нужно загрузить только файл в формате pdf. Существуют различные способы проверки расширения файла как функции $ _FILES ['files'] ['type'] или pathinfo(). Но что делать, если пользователь меняет расширение файла перед загрузкой. Пример. Если человек меняет файл png с изображения.png на image.pdf. Тогда как я могу проверить, что загруженный файл не является pdf?Проверьте, не расширилось ли расширение файла перед загрузкой в ​​php

+0

http://php.net/manual/en/function.finfo-file.php тип MIME – cmorrissey

+0

здесь: http://stackoverflow.com/questions/ 11514166/check-file-size-before-upload – Bouffe

+0

Все действующие файлы PDF начинаются с 4 байтов '% PDF' – Phylogenesis

ответ

0

попробовать этот

echo mime_content_type('form.pdf'); 

проверить больше информации в http://php.net/manual/es/function.mime-content-type.php

EDIT:

переименовать .zip файл в файл .pdf

if(isset($_FILES['archivo']) && is_uploaded_file($_FILES['archivo']['tmp_name'])) 
{ 

$archivo = $_FILES['archivo']['tmp_name']; 
$archivo_name = $_FILES['archivo']['name']; 

echo mime_content_type($archivo); 

move_uploaded_file($archivo, "upload/" . $archivo_name); 

} 

Сценарий выше приложения печати/zip

Затем вы можете сделать что-то вроде этого:

if (mime_content_type($_FILES['archivo']['tmp_name']) == 'application/pdf') { 
//ok is a pdf 
} 
+0

Любой лучший метод? Поскольку это показывает текст/plain для некоторых из PDF-файлов! –

+0

Как говорится в руководстве, вы можете использовать $ _FILES ['userfile'] ['type'], но этот тип mime, однако, не проверен на стороне PHP и поэтому не принимает его значение как должное. Подробнее читайте на странице http://php.net/manual/en/features.file-upload.post-method.php. –

Смежные вопросы