PHP 使用 exif_imagetype() 检查文件是否为 png:

PHP Check if file is png using exif_imagetype():

我试图在上传前检查文件是否为 png,但出现错误 警告:exif_imagetype():文件名不能为空

出于某种原因,它似乎适用于一个文件,但不适用于我尝试过的任何其他文件。

主要是

$image = $_FILES['userImg']['tmp_name'];

if (checkImageValid($image))
{
    uploadImage($image);
}

checkImageValid 函数是

function checkImageValid($image)
{

    $valid = true;

    $imgType = exif_imagetype($image);  //error here

    if($imgType != IMAGETYPE_PNG)
    {
       $valid = false;
       $_SESSION["imageMessege"] = 'The image You are trying to upload is not of type png';
    }

    return $valid;        
}

从此处的 html 表格中获取

<form action="" method="post" enctype="multipart/form-data">
         <input type="hidden" name="MAX_FILE_SIZE" value="10000" />
        <input type="file" name="userImg" accept="image/x-png"/>
        <input type="submit" value="Upload File" name="uploadImage" />
        </form>
<input type="hidden" name="MAX_FILE_SIZE" value="10000" />

是错误。将值更改为更多,以字节为单位。 10000 字节 = ~10kb。更改为 10000000 约 10MB。

将此行替换为:

<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />

我测试了它,它适用于任何图像。