Как изменить размер изображения перед загрузкой - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь изменить размер изображения перед загрузкой.Я добавил строку $img = resize_image($_FILES['Image']['tmp_name'], 200, 200); к коду ниже.Код работает правильно, чтобы загрузить.Сейчас я просто пытаюсь отрегулировать размер изображения.Я не уверен, как взять возвращаемое значение $ img и сохранить его с помощью файла move_uploaded_file.Когда я пытаюсь заменить $_FILES['Image']['tmp_name] на $img, я получаю ошибку разбора.Я также добавил функцию resize_image, чтобы вы могли видеть, что именно она возвращает.

    {
            $image_name= $_FILES['Image']['name'];
            $img = resize_image($_FILES['Image']['tmp_name'], 200, 200);
        $image_name =  $picCounter .$firstName .$image_name;
        move_uploaded_file( $_FILES['Image']['tmp_name'], "IMG/$image_name");
        correctImageOrientation("IMG/$image_name");

        $image_path = "/IMG/" .$image_name;

        $picCounter = $picCounter++;
        $sql = ("UPDATE LoginInformation SET PicCounter = PicCounter + 1 WHERE Email = '" . $useremail . "'" );
        mysqli_query($conn, $sql);
    }
    else
    {
        $image_path = "/IMG/square-image.png";
    }

здесь есть функция изменения размера

function resize_image($file, $w, $h, $crop=FALSE) {
    list($width, $height) = getimagesize($file);
    $r = $width / $height;
    if ($crop) {
        if ($width > $height) {
            $width = ceil($width-($width*abs($r-$w/$h)));
        } else {
            $height = ceil($height-($height*abs($r-$w/$h)));
        }
        $newwidth = $w;
        $newheight = $h;
    } else {
        if ($w/$h > $r) {
            $newwidth = $h*$r;
            $newheight = $h;
        } else {
            $newheight = $w/$r;
            $newwidth = $w;
        }
    }
    $src = imagecreatefromjpeg($file);
    $dst = imagecreatetruecolor($newwidth, $newheight);
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    return $dst;
}

1 Ответ

1 голос
/ 01 мая 2019

Вы не можете изменить размер изображения перед загрузкой с помощью PHP, PHP является языком на стороне сервера и будет работать только после загрузки изображения, не ранее.

Вам нужно сделать это через JavaScript. Видеть это: Используйте HTML5 для изменения размера изображения перед загрузкой

...