我想在PHP中将图像从远程URL保存到本地系统

时间:2017-11-15 09:07:14

标签: php curl

这是我的PHP代码

<?php
$return = array();
$img_url = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRriYVsmTPMn-8zkAKAtTzghAwUeQwaqmZCJTc127h7-WFYIpNS";
$imageUrl = $img_url;
$dd = pathinfo($imageUrl);
$pic_name=  $dd['basename'];

@$rawImage = file_get_contents($imageUrl);

if($rawImage)
{
    file_put_contents("C:/xampp/htdocs/get_img/".$pic_name,$rawImage);

    echo 'Image Saved';
}
else
{

echo 'Error Occured';
}

?>

但是对于谷歌图片中的这个网址,这段代码给了我这个 &#34;警告:file_put_contents(C:/ xampp / htdocs / get_img / images?q = tbn:ANd9GcRriYVsmTPMn-8zkAKAtTzghAwUeQwaqmZCJTc127h7-WFYIpNS):无法打开流:C:\ xampp \ htdocs \ get_img中的资源暂时不可用\ get1.php在第12行&#34;

如何保存此图片?

2 个答案:

答案 0 :(得分:0)

试试这个,它会帮助你

$imageLink = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRriYVsmTPMn-8zkAKAtTzghAwUeQwaqmZCJTc127h7-WFYIpNS";
$random = mt_rand();
$size = getimagesize($imageLink);
$extension = image_type_to_extension($size[2]);
$filename = $random . $extension;
$path = "/images/";
file_put_contents(getcwd() . $path . $filename, file_get_contents($imageLink));

答案 1 :(得分:0)

在尝试创建文件之前,只需清理文件名。只需从图片网址创建一个MD5字符串。

file_put_contents("C:/xampp/htdocs/get_img/".md5($pic_name),$rawImage);