在条件语句 php 中使用 getimagesize


Use getimagesize in conditional statement php

我想确保上传的图像具有尺寸。我运行一个测试,如果图像尺寸大于 50 ,则应禁止上传。这是我的代码:

if(isset($_FILES['fupload'])) {
    $filename = strtolower(($_FILES['fupload']['name']));
    $ext = substr($filename, -4);
    $filename = explode('.',$filename);
    $filename = $filename[0];
    $filename = str_shuffle($filename);
    $filename = $filename.$ext; 
    $source = $_FILES['fupload']['tmp_name'];   
    $target =  $path_to_image_directory.$filename;
    $size = getimagesize($filename);
    if( $size[0] > 20 || $size[1] > 20 ) {
        echo 'Too Large!';
    } else {
        move_uploaded_file($source, $target);
        createThumbnail($filename);
        $title= mysqli_real_escape_string($connection,$_POST['title']);
        $keyword1 = mysqli_real_escape_string($connection,$_POST['keyword1']);
        $keyword2 = mysqli_real_escape_string($connection,$_POST['keyword2']);
        $keyword3 = mysqli_real_escape_string($connection,$_POST['keyword3']);
        $Q = "INSERT INTO images (name, title, keyword1,keyword2,      keyword3)VALUES('$filename', '$title', '$keyword1','$keyword2','$keyword3')";
        if(!mysqli_query($connection, $Q)) {
            die("error inserting into pres name".mysqli_error($connection));
        }   
    }
}

当我尝试上传大图像时,我希望收到消息"太大!",但我没有。无论图像有多大,都会上传图像。我的最终目标是将大于号切换到小于号,以确保文件具有实际尺寸。

我从stackoverflow得到了这个条件语句:

if($size[0] > 20 || $size[1] > 20) {
    echo 'Too Large!';
}

似乎它应该阻止上传,但它没有。谁能帮我理解?

您可以使用

list($width, $height, $type, $attr) = getimagesize($_FILES["fupload"]["tmp_name"]);
if(($width>20)||($height>20)){
                $error = "Image Dimemsions Exceed Allowed Dimensions";
                return $error;
            }

希望对;)有所帮助