Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 上传前如何调整图像大小_Php_Image_Image Resizing - Fatal编程技术网

Php 上传前如何调整图像大小

Php 上传前如何调整图像大小,php,image,image-resizing,Php,Image,Image Resizing,我正在尝试在上传前调整图像大小。我添加了行$img=resize\u image($\u FILES['image']['tmp\u name'],200200)到下面的代码。代码正常工作,无法上载。现在我正试图调整图像的大小。我不知道如何获取返回值$img并将其与move_上传的文件一起保存。当我尝试用$img替换$\u文件['Image']['tmp\u name]时,我得到一个解析错误。我还添加了resize_image功能,这样您就可以看到它到底返回了什么 {

我正在尝试在上传前调整图像大小。我添加了行
$img=resize\u image($\u FILES['image']['tmp\u name'],200200)到下面的代码。代码正常工作,无法上载。现在我正试图调整图像的大小。我不知道如何获取返回值$img并将其与move_上传的文件一起保存。当我尝试用
$img
替换
$\u文件['Image']['tmp\u name]
时,我得到一个解析错误。我还添加了
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;
}

在使用PHP上传之前,您不能调整图像大小,PHP是服务器端语言,仅在上传图像后才起作用,而不是之前

您需要通过JavaScript实现这一点。 见此:

收到,谢谢。我将尝试这个解决方案。我可能有更多的问题要问你,所以我一直在回想我的PHP,你说在上传之前我不能调整大小。当我说上传时,我的意思是图像已经被传递到服务器端(使用Ajax),现在我在我的php文件中,并将图像推送到我的数据库中。推送到数据库就是我所说的上传。看起来我可以在将php存储到数据库之前使用它来调整大小。不