使用 imagejpeg() 函数保存图像文件

Using imagejpeg() function to save image file

我正在尝试将图片上传到两个不同的目录中,我想使用 imagejpeg() 功能将图片放入其中一个目录中。这两个目录称为 uploadsresized

这是我实现此目的的代码:

$tmp_name = $_FILES["fileToUpload"]["tmp_name"];
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    imagejpeg($tmp_name,"resized/newimage.jpg");

    echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} 

但是,我一直收到错误 imagejpeg() expects parameter 1 to be resource, string given in /home/sites/aejhyun.com/public_html/Syrian Project/upload.php on line 41。我还通过查看此处 http://php.net/manual/en/function.imagejpeg.php and http://php.net/manual/en/function.move-uploaded-file.php 进行了一些研究。但是,我无法弄清楚这个问题。有人可以帮忙吗?

您将字符串设置为 $tmp_name 而不是图像资源本身,该函数需要实际图像而不是它的位置或名称,如果您想调整它的大小,首先您必须将它打开为图像然后做任何你想做的最后保存,

所以,这是字符串

$tmp_name = $_FILES["fileToUpload"]["tmp_name"];

将其移动到 $target_file 后,您可以将其作为图片打开

$image = imagecreatefromjpeg($target_file);

现在您拥有图像本身而不仅仅是文件名,您可以使用 imagejpeg

保存它
imagejpeg($image,"resized/newimage.jpg");

这对我有用

$url = 'my_img_url.jpeg';
$binary = imagecreatefromstring(file_get_contents($url));
imageJpeg($binary, "myimage.jpg", 100);