PHP-使用exif_imagetype检查文件类型错误

PHP-使用exif_imagetype检查文件类型错误,php,Php,我试图检查上传的图像是否是PNG、JPG或GIF,而不仅仅是检查文件扩展名。我正在尝试以下方法: $allowed_types = array (IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $detectedType = exif_imagetype($_FILES['file_to_upload']['tmp_name']); if ( !in_array($detectedType, $allowed_types) ) {

我试图检查上传的图像是否是PNG、JPG或GIF,而不仅仅是检查文件扩展名。我正在尝试以下方法:

$allowed_types = array (IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($_FILES['file_to_upload']['tmp_name']);
    if ( !in_array($detectedType, $allowed_types) ) {
        die ( 'Please upload a pdf or an image ' );
    }


//code to handle image
但是,即使是图像,我也会收到警报。有人能告诉我为什么吗

应该是:

 $allowed_types = array (IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
 $detectedType = exif_imagetype($_FILES['file']['tmp_name']);
    if ( !in_array($detectedType, $allowed_types) ) {
    die ( 'Please upload a pdf or an image ' );
  }

为什么没有任何评论就进行向下投票?可能是@shaggy的重复我试图从exif数据中找出扩展名,而不是通过在数组中声明允许的扩展名,所以不重复使用mime类型,为什么要使用它?@shaggy,当然,这些文件是实际的图像文件,而不是扩展名为.jpg、.png等的恶意文件。如果这是错误的,您如何建议正确的方法?