使用PHP将外部图像复制到服务器


Copy external image to server with PHP

我想将外部映像复制到本地服务器。我知道当url看起来像这样时该怎么做:www.external.com/image.jpg但是,当图像是这样的:www.external.com/image.php时,它是如何工作的呢?image=花?

我的代码是:

$headers = get_headers($url, 1);
$type = $headers["Content-Type"];
$types = array('image/gif' => 'gif', 'image/jpeg' => 'jpeg', 'image/png' => 'png');
if(in_array($type, $types))
{
 copy($url, '../img/'.$name.'.'.$types[$type]);
}

答案:

看起来if(in_array($type,$types))是问题所在。当我拆下那个零件时,一切都很顺利。

不过刚刚用file_get_contenst()和fwrite()进行了测试。

谢谢你们的建议!

如何生成$name值。如果您是从URL中提取的,那么您创建$name值的方式可能存在问题。

此外,您是否尝试过转义提供给复制命令的URL字符串?只是为了确保问题不是由URL字符串引起的。