我正在尝试将图片上传到两个不同的目录中,我想使用imagejpeg()
函数将图片放在其中一个目录中。这两个目录称为uploads
和resized
。
以下是我的代码:
$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和http://php.net/manual/en/function.move-uploaded-file.php进行了一些研究。但是,我无法解决这个问题。有人可以帮忙吗?
答案 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");