将图像下载到由API

时间:2016-01-26 17:44:17

标签: php

我使用来自第三方网站的API制作缩略图并在我的网站上展示。我在php中使用以下行来显示缩略图:

echo '<img src="http://api.thirdpartysite.org/?some_param" />';

它工作正常,图像在浏览器中完美显示。当然,从我的浏览器中我可以将法师保存到我的电脑中。

有没有办法可以使用php直接将图像文件直接下载到我的服务器上?

编辑: 我已经尝试了

file_put_contents("image.png", fopen("http://api.thirdpartysite.org/?some_param'", 'r')); 

并在服务器中创建一个空图像文件

我正在使用共享主机,linux服务器。

2 个答案:

答案 0 :(得分:0)

我使用了curl_exec(),它就像一个魅力。

答案 1 :(得分:0)

很大的细微差别是您可能不知道下载的图像文件的扩展名。
所以目前我可以建议你一个简单的解决方案,下载当前的谷歌徽标图像(例如)。
我们将使用的功能列表: file_get_contentsfile_put_contentsgetimagesizerenameheaderreadfile

$img = file_get_contents("https://www.google.com.ua/logos/doodles/2016/90th-anniversary-of-the-first-demonstration-of-television-6281357497991168.3-res.png");
file_put_contents("image", $img); // assuming that we don't know the extension at the moment
$image_data = getimagesize("image"); // getting image details
$ext = explode('/',$image_data['mime'])[1]; // getting image mime type
rename("image", "image." . $ext );  // rename image specifying determined extension 

// the immediate test: we will immediately output the downloaded image (just for testing) 
header("Content-Type: image/" . $ext);
readfile("image." . $ext);

输出结果如下:
enter image description here