我使用来自第三方网站的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服务器。
答案 0 :(得分:0)
我使用了curl_exec(),它就像一个魅力。
答案 1 :(得分:0)
很大的细微差别是您可能不知道下载的图像文件的扩展名。
所以目前我可以建议你一个简单的解决方案,下载当前的谷歌徽标图像(例如)。
我们将使用的功能列表:
file_get_contents
,file_put_contents
,getimagesize
,rename
,header
,readfile
$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);