PHP:exif_imagetype()不起作用?

Kar*_*rem 0 php exif

我有这个扩展检查器:

$upload_name = "file";
$max_file_size_in_bytes = 8388608;
$extension_whitelist = array("jpg", "gif", "png", "jpeg");

/* checking extensions */
$path_info = pathinfo($_FILES[$upload_name]['name']);
$file_extension = $path_info["extension"];
$is_valid_extension = false;
foreach ($extension_whitelist as $extension) {
    if (strcasecmp($file_extension, $extension) == 0) {
        $is_valid_extension = true;
        break;
    }
}
if (!$is_valid_extension) {
    echo "{";
    echo        "error: 'ext not allowed!'\n";
    echo "}";
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

然后我补充说:

if (exif_imagetype($_FILES[$upload_name]['name']) != IMAGETYPE_GIF 
        OR exif_imagetype($_FILES[$upload_name]['name']) != IMAGETYPE_JPEG 
        OR exif_imagetype($_FILES[$upload_name]['name']) != IMAGETYPE_PNG) {
    echo "{";
    echo        "error: 'This is no photo..'\n";
    echo "}";
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

一旦我将其添加到我的imageupload函数中,该函数就会停止工作.我没有得到任何错误,甚至不是我自己做的那个"这不是照片",可能是什么错误?

刚与我的主人核对过.它们支持exif_imagetype()函数

Mar*_*gar 7

以下是交换机用法的示例:

switch(exif_imagetype($_FILES[$upload_name]['name'])) {
    case IMAGETYPE_GIF:
    case IMAGETYPE_JPEG:
    case IMAGETYPE_PNG:
        break;
    default:
        echo "{";
        echo        "error: 'This is no photo..'\n";
        echo "}";
        exit(0);
}
Run Code Online (Sandbox Code Playgroud)

您的脚本也可以使用,但您必须在条件之间放置AND:

if (exif_imagetype($_FILES[$upload_name]['name']) != IMAGETYPE_GIF 
        AND exif_imagetype($_FILES[$upload_name]['name']) != IMAGETYPE_JPEG 
        AND exif_imagetype($_FILES[$upload_name]['name']) != IMAGETYPE_PNG) {
    echo "{";
    echo        "error: 'This is no photo..'\n";
    echo "}";
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)