0
Good afternoon!
I am using the Facebook SDK to login to my site, I can return the data, including the link of the profile photo, but I can’t save the image, the following error occurs:
PHP Error was encountered
Severity: Warning
Message: file_put_contents(. /images/profile/image name returned): failed to open stream: No such file or directory
For this I use the Curl library with the file_put_contents function.
$imgUrl = "http://graph.facebook.com/ID FACEBOOK/picture?width=300";
$imagename= basename($imgUrl);
if(file_exists('./'.$imagename)){continue;}
$image = $this->curl->getImg($imgUrl);
file_put_contents('./imagens/perfil/'.$imagename,$image);
Curl:
function getImg($url) {
$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$user_agent = 'php';
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $user_agent); //check here
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}
NOTE: If using this same code with the url of an image from another location works perfectly.
I tried to do this but of the same error as I am using the Codeigniter also tested with base_url() and yet the error occurs.
– Rafael Gonçalves
I figured out more or less how to solve, as I mentioned in the code I was using basename() to return the name of the photo. the name that returned was 20228632_1500520143337391_4330092013544404463_n.jpg? oh=609e20c8b79053e75b7679d74c3b498c&Oe=59FBE89D, when setting any name to image she saved correctly
– Rafael Gonçalves