php copy()不能使用特定的url链接

问题描述:

我想复制另一台服务器的图像,但它不起作用,我不知道为什么。这里是我的代码:php copy()不能使用特定的url链接

if(copy('http://demo.swyp.fr/mod_traffiq/thumb/LQ1009C/LQ143559C/LQ157553C-71x100.jpg', 'zzz.jpg')) { 
    echo "Copy success!"; 
}else{ 
    echo "Copy failed."; 
} 

它总是返回失败。

您正在使用copy函数。尽管此方法适用于远程数据源和目的地,但我们鼓励您使用file_put/get_contents-方法(请参阅下面的文档引用)。

$image = file_get_contents('http://demo.swyp.fr/mod_traffiq/thumb/LQ1009C/LQ143559C/LQ157553C-71x100.jpg'); 
file_put_contents('zzz.jpg', $image); 

file_get_contents文档:

file_get_contents()函数是要读取的文件的内容转换成字符串的首选方式。如果您的操作系统支持,它将使用内存映射技术来提高性能。

还要注意:

的URL可以,如果fopen封装已启用作为具有这种功能的文件名。

但是,如果你的设置fopen远程URL未打开,则可能是卷曲测试:

$ch = curl_init('http://demo.swyp.fr/mod_traffiq/thumb/LQ1009C/LQ143559C/LQ157553C-71x100.jpg'); 
$fp = fopen('zzz.jpg', 'wb'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

有可能是其他PHP设置(或服务器配置),这将禁用所有的这些代码运行中的片段。如果这不起作用,那么这是一个配置问题。

+0

我照你说的做,但复制的图像是空的:( –

+0

@MInhNHat你是否看到笔记,这要求你打开fopen,如果你的服务器禁用了这个功能,那么下载远程文件是不可能的。检查你的'phpinfo()'中的值。 – OptimusCrime

+0

*复制函数只适用于本地文件* - 我认为这不是真的,它使用与'file_get_contents'相同的包装。 – iainn