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