Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在服务器上保存图片-PHP Facebook_Php_Mysqli_Facebook Php Sdk - Fatal编程技术网

在服务器上保存图片-PHP Facebook

在服务器上保存图片-PHP Facebook,php,mysqli,facebook-php-sdk,Php,Mysqli,Facebook Php Sdk,我正在尝试保存您从我的服务器上的$FB->get获取的图片。因此,我可以得到这张照片,并使其成为一个个人资料图片登录facebook。现在唯一的问题是,我不知道如何保存我的服务器上的图片。我想我需要使用php中的copy或rename函数之类的东西。正如你所看到的,我尝试过使用它,但我不知道我需要如何修复它 $oAuth2Client = $FB->getOAuth2Client(); if (!$accessToken->isLongLived()) $accessT

我正在尝试保存您从我的服务器上的
$FB->get
获取的图片。因此,我可以得到这张照片,并使其成为一个个人资料图片登录facebook。现在唯一的问题是,我不知道如何保存我的服务器上的图片。我想我需要使用php中的
copy
rename
函数之类的东西。正如你所看到的,我尝试过使用它,但我不知道我需要如何修复它

$oAuth2Client = $FB->getOAuth2Client();
   if (!$accessToken->isLongLived())
    $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);

$response = $FB->get("/me?fields=id, first_name, last_name, email,gender,link, birthday,picture.type(large)", $accessToken);
$userData = $response->getDecodedBody();


$fb_foto_url = $userData['picture']['data']['url']; 
copy($fb_foto_url ,'assets/images/profielfotos');

$voornaam= $app->get_klant_fb($userData['first_name']);
$_SESSION['voornaam'] = $userData['first_name'];
$_SESSION['achternaam'] = $userData['last_name'];

$fb_fotoUrl = $app->saving_fb_foto($userData['picture']['data']['url']);
我是如何基于facebook登录创建用户的

//data ophalen
$klant= $app->get_klant_fb($userData['id']);
if($klant['id'] > 0) {
    //sessie klant zetten
    $_SESSION['klant_id'] = $klant['id'];
} else {
    //klant aanmaken
    unset($query);
    $query['oauth_uid']     = $userData['id'];
    $query['ledenpagina_id']= $_SESSION['ledenpagina_id'];
    $query['voornaam']      = $userData['first_name'];
    $query['achternaam']    = $userData['last_name'];
    $query['emailadres']    = $userData['email'];
    $query['geboortedatum'] = $userData['birthday'];
    $query['gender']        = $userData['gender']; 
    $query['link']          = $userData['link'];
    $app->insert_query('klanten', $query);

    $klant= $app->get_klant_fb($userData['id']);
    if($klant['id'] > 0) {
        $_SESSION['klant_id'] = $klant['id'];  
    }
}

如果您有类似的URL

你可以做一个拯救

file_put_内容(“your/local/server/file.png”,fopen($fb_foto_url,'r'))

不过,对我来说,将Facebook URL存储在数据库中并简单地使用它会更有意义


Ref:

请尝试使用curl选项将图像保存到服务器

$fb_foto_url = $userData['picture']['data']['url']; 

$ch = curl_init($fb_foto_url);
$fp = fopen('assets/images/profielfotos/photo.ext', 'wb'); //Please print out the url and replace the .ext with extension returned such as jpg/png
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
//现在图像将被存储 //删除复制功能


但是,如果你真的不想编辑图片或其他内容,请尝试直接从url获取它,这样它也会自动更新。

出于兴趣,为什么你要保存图片本身而不是FB url?同样相关:@Pogrindis好的,我会得到一个链接,当我按下它时,它会下载图像。所以它不会在标签或类似的东西中显示url。你能给我们举个例子说明
$userData['picture']['data']['url']]
的值是多少吗?我提出了一个问题@Pogrindis这是它将返回的内容好的,我会得到一个链接,当我按下它时,它将下载图像。所以它不会在标签或类似的东西中显示url。如果我看你的答案,它确实是
r
那是什么?@helpmeifyoucann
r
的意思是打开时只读。。您将从URL读取该文件并在本地保存。不要害怕测试代码。你能让你的代码为我工作吗?因为我并没有真正明白这一切的意义。(或者可以使用注释,以便我知道在我的情况下需要更改什么)