问题描述
是否可以使用 Facebook PHP 库将远程图片上传到 Facebook??
Is it possible to upload a remote picture to Facebook using the Facebook PHP Library??
代替使用
$facebook->setFileUploadSupport(true); $args = array('message' => 'My Caption'); $args['image'] = '@' . realpath($file); $data = $facebook->api('/me/photos', 'post', $args);
代替 realpath($file) 我想使用图像的远程路径,例如:
Instead of a realpath($file) I would like to use a remote path to an image for example:
http://myserver.com/image.jpg
我尝试用 http 链接替换 ??realpath($file),但出现以下错误:
I tried to replace the realpath($file) with a http link but I got the following error:
Uncaught CurlException: 26: couldn't open file "http://mydomain.com/fb_images/EwrTsUqEuG.jpg"
推荐答案
使用 file_get_contents() 将文件下载到您的服务器,然后 file_put_contents() 将其存储在一个临时的本地文件中,用于上传 FB 传输过程,然后 unlink() 之后删除文件.
Use file_get_contents() to download the file to your server, then file_put_contents() to store it in a temporary, local file for the upload FB transfer process, then unlink() to delete the file afterwards.
<?php # The URL for the Image to Transfer $imageURL = 'http://server.com/the_image.jpg'; # Folder for Temporary Files $tempFilename = $_SERVER['DOCUMENT_ROOT'].'/tempFiles/'; # Unique Filename $tempFilename .= uniqid().'_'.basename( $imageURL ); # Get the Image if( $imgContent = @file_get_contents( $imageURL ) ){ if( @file_put_contents( $tempFilename , $imgContent ) ){ $facebook->setFileUploadSupport(true); $args = array('message' => 'My Caption'); $args['image'] = '@' . realpath( $tempFilename ); $data = $facebook->api('/me/photos', 'post', $args); # Once done, delete the Temporary File unlink( $tempFilename ); }else{ # Failed to Save Image } }else{ # Failed to Get Image }