2012-05-09 53 views
0

我试图使用PHP副本()不是从URL工作在PHP

<?php $image = "http://l.yimg.com/t/frontpage/10-facts-slideshow-080512-630-01.jpg"; 
if (!copy($image, "localfolder/mainPic1.png")) { 
echo "FAILED"; 
}else{echo "DONE";} 

从URL复制文件到文件夹在我的系统文件夹,它总是与“失败”

    结束
  • 所有的权限被设置为localfolder

  • 我检查的phpinfo,发现allow_url_fopen =Off

因为它是一个共享服务器我没有任何控制的PHP设置。请你能提出一个替代方案。

感谢, 周杰伦

+0

这是类似于我们的问题 http://stackoverflow.com/questions/6306935/php-copy-image-to-my-server-direct-from-url –

回答

0

如果allow_url_fopen是关闭的,你不能启用它,你将需要使用卷曲来检索文件并将其保存在本地。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://l.yimg.com/t/frontpage/10-facts-slideshow-080512-630-01.jpg"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$imgdata = curl_exec($ch); 

// Save to disk 
file_put_contents("localfolder/mainPic1.png", $imgdata); 
+0

好吧,我是知道的解决方案Curl和相当知道如何使用它,我想即使使用卷曲我只能获取图像的网址?再次我会回到我开始从url复制的地方?请纠正我,如果我不正确 – Jay66online

+0

@ Jay66online不知道你的意思_only获取images_ urls。 curl会将图像数据提取到返回的变量中。 –

+0

@ Jay66online我测试了上面的代码,它会正确地检索并保存图像的URL到本地文件。 –

0

是,allow_url_fopen必须ON这一点。

allow_url_fopen = On 

即使允许您在共享服务器上修改php.ini。创建一个php.ini并将值allow_url_fopen = On保留在根文件夹中。它通常覆盖默认设置。

+0

以及我知道,让我试试这个太谢谢了 – Jay66online