Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查文件,而不仅仅是扩展名PHP_Php_Upload - Fatal编程技术网

检查文件,而不仅仅是扩展名PHP

检查文件,而不仅仅是扩展名PHP,php,upload,Php,Upload,我四处寻找,但找不到任何关于我的问题的具体信息 我使用jquery.validate检查上传文件的扩展名是否正确。我还使用Jquery中的Mime类型检查进行了尝试 两种方式都只检查分机。我可以创建一个文本文件,将扩展名重命名为pdf或word,文件就会通过。当然,这些文件已损坏 是否有一种方法可以检查文件本身而不仅仅是扩展名?以下是我到目前为止得到的信息: <?php require_once '../lib/PHPMailer/PHPMailerAutoload.php'; fun

我四处寻找,但找不到任何关于我的问题的具体信息

我使用jquery.validate检查上传文件的扩展名是否正确。我还使用Jquery中的Mime类型检查进行了尝试

两种方式都只检查分机。我可以创建一个文本文件,将扩展名重命名为pdf或word,文件就会通过。当然,这些文件已损坏

是否有一种方法可以检查文件本身而不仅仅是扩展名?以下是我到目前为止得到的信息:

<?php

require_once '../lib/PHPMailer/PHPMailerAutoload.php';

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}


if(isset($_POST['email'])) {

    $geslacht = $_POST['title'];
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required


        $d='C:/wamp/www//upload/';
        $de=$d . basename($_FILES['bestand']['name']);
    if (move_uploaded_file($_FILES["bestand"]["tmp_name"], $de)) {

    }else {

         echo "<script>alert('Bestand kon niet worden geupload')</script>";
    };
$fileName = $_FILES['bestand']['name'];
    $filePath = $_FILES['bestand']['tmp_name'];
     //add only if the file is an upload

  }
else
  {

  }


$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPDebug = 2;

$mail->Host = '';
$mail->Username ='';
$mail->Password = '';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;


$mail->From = ';
$mail->FromName = "$geslacht $first_name $last_name";
$mail->AddAddress('', '');
$mail->Subject = "Sollicitatie van $geslacht $first_name $last_name";
$mail->Body = "$geslacht $first_name $last_name heeft zijn/haar CV Gestuurd! Klik op bijlage om te bekijken. Het email adres van deze persoon is $email_from";
$mail->AddAttachment($de, $_FILES['bestand']['name']);
 var_dump($mail->Send());
有什么建议吗?
谢谢大家

您应该使用finfo_文件函数,请在此处阅读更多相关信息:

此函数按文件内容返回有关文件的信息,而不考虑扩展名

您可以这样使用它:

<?php
    $finfo = new finfo(FILEINFO_MIME);
    echo $finfo->file("<file_path>"); //outputs file type
?>

希望这会有所帮助。

有一个linux命令可以检查文件的内容。我不知道是哪一个。您可以非常小心地使用它并解析结果为什么要非常小心?你有关于那个命令的更多信息吗?命令文件,像file-mime一样使用它。