如何在我的“img”文件夹中上传Facebook图像


How can I upload the Facebook image in my "img" folder?

我正在使用Facebook php SDK为我的用户注册他们的Facebook帐户。我将我需要的所有数据存储在我的sql数据库中,并且能够通过以下方式访问图片:

<img src="https://graph.facebook.com/<?php echo $user;?>/picture">

我想将图像(实际图像而不仅仅是链接)存储在我的一个服务器文件夹中,以便用户可以在不访问其 Facebook 个人资料的情况下更改它。

有可能做到吗?

这应该做你想要的,并将图像放入images/facebook/[USERID].jpg中。

请记住,您可能应该使用cURL而不是file_get_contents这样您就可以为超时和较长的响应时间做好准备(Facebook API将会出现这种情况)。

<?php
    $imageData = file_get_contents("https://graph.facebook.com/" . $user . "/picture");
    file_put_contents("images/facebook/" . $user . ".jpg", $imageData);
?>

这就是你如何使用cURL(未经测试,但应该可以工作):

<?php
    $facebookCurl = curl_init();
    curl_setopt($facebookCurl, CURLOPT_URL, "https://graph.facebook.com/" . $user . "/picture");
    curl_setopt($facebookCurl, CURLOPT_HEADER, 0);
    curl_setopt($facebookCurl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($facebookCurl, CURLOPT_TIMEOUT, 5);
    $imageData = curl_exec($facebookCurl);
    curl_close($facebookCurl);
    file_put_contents("images/facebook/" . $user . ".jpg", $imageData);
?>