PHP:检查文件上传是否是有效的PDF文件

时间:2018-06-11 12:10:33

标签: php pdf mime-types

我想通过PHP验证用户提交的文件是否是有效的PDF文件。 但是我有这个限制:

  1. PHP 5.0.4。
  2. 我无法使用 mime_content_type finfo_open
  3. 我遇到shell_exec(文件命令)问题。所以,再一次,我无法使用它。
  4. 我唯一需要知道的是文件实际上是PDF。 ¿我可以使用哪种低级解决方案?就像阅读第一个x字符并查找%PDF或类似内容一样。

    提前致谢。

4 个答案:

答案 0 :(得分:0)

您受到了限制,但在使用$_FILES提交表单后,您可以在后端执行某些操作,该表单来自使用输入类型="文件"提交的表单:

$_FILES['form_name_for_input_type_equals_file']['name'] ---> check if extension here is .pdf
$_FILES['form_name_for_input_type_equals_file']['type'] ---> check if mime type here is application/pdf

有关$_FILES的更多信息,请点击here

答案 1 :(得分:0)

尝试使用此

$allowed =  array('pdf');
$filename = $_FILES['document_file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
    echo 'Please, only upload PDF files';
}

你还可以做的是让PHP调用一个BASH脚本来确认它是否是操作系统的pdf,我不建议你这样做,但是它的级别低得多。您还可以使用bash或PHP中的正则表达式来检查文件头是否与PDF的文件头相匹配。

答案 2 :(得分:0)

这样的事可能......

if(isset($_FILES['uploaded'])) {
    $temp = explode(".", $_FILES["uploaded"]["name"]);

    $allowedExts = array("pdf");


    if( in_array($allowedExts)) {
       //code....

    } else {
        echo "Error,not a PDF file";
    }
}

显然,您还可以通过扩展数组

添加额外的扩展以进行验证

答案 3 :(得分:0)

试一试: 它对我有用:

$file_type = $_FILES['filename']['type'];
if($file_type=='application/pdf'){
    // is pdf
}else{
   // not pdf
}