在使用GD或imagemagick的PHP中,如何从URL上传照片,我想构建一个可以传递几个参数并上传图像的函数,我可以将一个大图像上传,将其调整得更小,然后调整一些缩略图并将其全部保存到1个图像的位置,但我想添加从URL获取图像然后在其上运行我的代码以调整大小和制作拇指的功能。
我会使用curl或其他任何例子或想法会非常感激
答案 0 :(得分:11)
$image = @ImageCreateFromString(@file_get_contents($imageURL));
if (is_resource($image) === true)
{
// image is valid, do your magic here
}
else
{
// not a valid image, show error
}
如果URL不是有效图像,两个函数上的@
都可以防止PHP抛出错误。
答案 1 :(得分:2)
根据您的PHP配置,fopen可能会也可能不会直接允许它: http://php.net/manual/en/function.fopen.php
或者,您可以直接打开套接字(http://php.net/manual/en/book.sockets.php)和写入/读取HTTP(http://www.faqs.org/rfcs/rfc2616.html)。除非你非常小心权限(特别是执行),否则我不会使用curl,或者可以保证没有恶意的人可以访问该工具,因为你将有效地打开一个潜在的攻击途径(严格来说,你已经是的,但这有几种不同的方式可以滥用)
答案 2 :(得分:0)
$img = '';
$fp = fopen($url, 'rb');
if($fp) {
while($buf = fread($fp, 1024)) {
$img .= $buf;
}
}
fclose($fp);
//假设启用了url fopen包装器