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

时间:2015-10-20 10:26:01

标签: php

我正在尝试将图片上传到两个不同的目录中,我想使用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.phphttp://php.net/manual/en/function.move-uploaded-file.php进行了一些研究。但是,我无法解决这个问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

所以,这是字符串

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

将其移至 $ target_file 后,您可以将其打开为图像

$image = imagecreatefromjpeg($target_file);

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

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