我想使用PHP将图像从网址复制到我的服务器
我看到了这个答案Saving image from PHP URL
并尝试了这个:
<?php
$url = 'https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/548412_147785902099377_260065314_n.jpg?oh=5c97dcd58931398e501666daee4c4ae8&oe=5457AC73&__gda__=1414911437_494ad1af138ee7670f89f4a6ba8b6d06';
$img = 'flower.jpg';
copy($url, $img);
?>
但我收到以下错误:
failed to open stream: No connection could be made because the target machine actively refused it.
我的php版本是5.4,在我的php.ini allow_url_fopen=On
中
我找不到如何解决这个问题,任何聪明的建议?
答案 0 :(得分:0)
我可以在命令行使用普通curl
抓住它:
curl "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/548412_147785902099377_260065314_n.jpg?oh=5c97dcd58931398e501666daee4c4ae8&oe=5457AC73&__gda__=1414911437_494ad1af138ee7670f89f4a6ba8b6d06" > bill.jpg
也许你可以使用php system
来做到这一点?
答案 1 :(得分:0)
在代码
下使用file_put_contents而不是copy.usefile_put_contents($img, file_get_contents($url));
答案 2 :(得分:0)
如何使用curl,然后可以直接写入文件。
<?php
$url = 'https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/548412_147785902099377_260065314_n.jpg?oh=5c97dcd58931398e501666daee4c4ae8&oe=5457AC73&__gda__=1414911437_494ad1af138ee7670f89f4a6ba8b6d06';
$fp = fopen ('./flower.jpg', 'w+');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'YourBot.0.1');
curl_setopt($ch, CURLOPT_FILE, $fp); // write curl response to file
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //required!
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //required!
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>