0

画像の MIME タイプを判別しようとしています:

$image = $_FILES['image'];  //code shortened
function determineImage($imageResource){

    $errors = array();

    $types = array('gif' => IMAGETYPE_GIF,
                   'jpeg' => IMAGETYPE_JPEG,
                   'png' => IMAGETYPE_PNG,
                   'bmp' => IMAGETYPE_BMP);


    if ( !in_array(exif_imagetype($imageResource['tmp_name']), $types )) {
        $errors[] =  'Cannot determine mime type';
    }

    if ($imageResource['type'] !== 'image/gif'   ||
        $imageResource['type'] !== 'image/jpeg'  || 
        $imageResource['type'] !== 'image/pjpeg' ||
        $imageResource['type'] !== 'image/png'){
            $errors[] = 'Again cannot determine type';
    }

    return $errors;

}

私が使う

   var_dump(determineImage($image)); 

これは array(1) { [0]=> string(27) "再びタイプを判別できません" } を返し続けます

ただし、これ:

echo $image['type'];

ただ戻ります:

image/png

error_reporting(E_ALL) もオンにしました。誰が問題が何であるかを理解できますか?私はばかげた間違いを犯しましたか?

4

1 に答える 1

0

コードは完全にランダムです(チェックはまったく意味がありません)

ところで

if ($imageResource['type'] !== 'image/gif'   AND
    $imageResource['type'] !== 'image/jpeg'  AND
    $imageResource['type'] !== 'image/pjpeg' AND
    $imageResource['type'] !== 'image/jpg'  ...

かつ OR ではない

于 2012-08-31T01:50:17.733 に答える