从URL保存图像然后将其保存到目录php中

时间:2011-12-05 07:19:41

标签: php

  

可能重复:
  save image from php url using php

如何使用php从另一个域(不在我的域/服务器上)保存/获取图像并将其保存在我的网站目录中。

例如,图片的网址为:

http://anothersite/images/goods.jpg

如何使用PHP抓取“good.jpg”,并将其保存在我的目录www.mysite.com/directory/

我希望有人可以指导我。 谢谢!

2 个答案:

答案 0 :(得分:21)

您应该能够file_get_contents使用此file_get_contents。要使用包含allow_url_fopen的网址,请确保php.ini文件中已启用define('DIRECTORY', '/home/user/uploads'); $content = file_get_contents('http://anothersite/images/goods.jpg'); file_put_contents(DIRECTORY . '/image.jpg', $content);

chmod +w /home/users/uploads

确保您对要存储图像的目录具有写入权限;要使文件夹可写,你可以这样做:

{{1}}

<强>参考

  1. file_get_contents
  2. allow_url_fopen
  3. chmod command

答案 1 :(得分:3)

此链接可能会回答您的问题:

http://stackoverflow.com/questions/909374/copy-image-from-remote-server-over-http

对我来说,以下代码应该满足您的需求:

$url = "http://other-site/image.png";
$dir = "/my/local/dir/";
$lfile = fopen($dir . basename($url), "w");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
curl_setopt($ch, CURLOPT_FILE, $lfile);

fclose($lfile);
curl_close($ch);