我试图将图片上传到两个不同的目录中,我想使用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。然而,我无法解决这个问题。有人能帮忙吗?
你正在设置字符串$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);