调整后的 img 的保存路径 PHP

Save path for resized img PHP

这是我的问题,我这样做了:

        $fichierIMG = $_FILES['image']['tmp_name'];

        $tailleSource = getimagesize($fichierIMG);

        $image_type = $tailleSource[2]; 

        if( $image_type == IMAGETYPE_JPEG ) {   
        $imageSource = imagecreatefromjpeg($fichierIMG);  
        $imgResize = redimension($imageSource,$tailleSource[0],$tailleSource[1]);
        imagejpeg($imgResize,$_FILES['image']['name'] . "_thump.jpg");
        }

        elseif( $image_type == IMAGETYPE_PNG ) {
        $imageSource = imagecreatefrompng($fichierIMG); 
        $imgResize = redimension($imageSource,$tailleSource[0],$tailleSource[1]);
        imagepng($imgResize,$_FILES['image']['name'] . "_thump.png");
        }

        function redimension($imageSource,$width,$height) {
            $img_width =200;
            $img_height =200;
            $imgResize=imagecreatetruecolor($img_width,$img_height);
            imagecopyresampled($imgResize,$imageSource,0,0,0,0,$img_width,$img_height, $width,$height);
            return $imgResize;
            }

但是带有“_thump.xxx”的文件没有出现在我的上传文件夹中,我做错了什么?

您正在根据临时文件进行所有更改。

此外,您永远不会在任何地方指定上传目录:

imagejpeg($imgResize,$_FILES['image']['name'] . "_thump.jpg"); 应该是 imagejpeg($imgResize,"uploads/".$_FILES['image']['name'] . "_thump.jpg");

使用 move_uploaded_file 确保文件实际上也已正确上传也无妨。

https://www.php.net/manual/en/function.move-uploaded-file.php

这是我在本地修复您的代码所做的事情。

  1. 我使用 move_uploaded_file 将文件移动到“image/”目录,您可以将它放在任何您想要的地方。 1.1) 创建 $uploaddir 变量 1.2) 创建 $uploadfile 变量
  2. 我确保 php.ini 中 upload_max_filesize 的设置在我的情况下设置为 128M,因为很多软件同时 运行。
  3. 我使用 str_replace() 函数从名称中删除了 .png 或 .jpg 名称。

//创建一个 $uploaddir 变量并用你想要的文件夹初始化它在我的例子中 image/

$uploaddir="image/";

//创建另一个变量来追加上传目录和文件名如下

$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

//移动上传的文件如下

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
}

else {
    echo "Failed to move file to required directory!\n";
}

//以下是最终代码,您可以复制粘贴并仅编辑 $uploaddir 变量

$uploaddir="image/";
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.\n";
}

else {
    echo "Failed to move file to required directory!\n";
}
$fichierIMG="$uploaddir".$_FILES['userfile']['name'];
$tailleSource = getimagesize($fichierIMG);
$image_type = $tailleSource[2]; 

if( $image_type == IMAGETYPE_JPEG ) {   
    $imageSource = imagecreatefromjpeg($fichierIMG);  
    $imgResize = redimension($imageSource,$tailleSource[0],$tailleSource[1]);
    imagejpeg($imgResize,str_replace(".jpg","",$_FILES['image']['name']).        
"_thump.jpg");//str_replace will strip off the .jpg extension
}

else if( $image_type == IMAGETYPE_PNG ) {
    $imageSource = imagecreatefrompng($fichierIMG); 
    $imgResize = redimension($imageSource,$tailleSource[0],$tailleSource[1]);
    imagepng($imgResize,str_replace(".png","",$_FILES['userfile']['name']) . 
    "_thump.png");//str_replace will strip off the .png extension
}

function redimension($imageSource,$width,$height) {
    $img_width =200;
    $img_height =200;
    $imgResize=imagecreatetruecolor($img_width,$img_height);
    imagecopyresampled($imgResize,$imageSource,0,0,0,0,$img_width,$img_height, 
    $width,$height);
    return $imgResize;
}

//让我们知道它是否可以使用三角形