2011-11-30 64 views
2

可以使用Facebook PHP SDK 3.1.1直接上传base64编码图像而不用保存它?使用Facebook sdk上传base64编码图像?

$facebook->setFileUploadSupport(true); 
$facebook->api('/me/photos', 'POST', array(
    'source' => '@/mycoolpic.png', // No need to use FS, base64 encoded image 
    'message' => "I'm cool", 
)); 
+0

是在你的代码的东西你添加或东西,是现有对此有何评论? – Scuzzy

回答

0

不,我没有意识到,或找到了搜索。确保在图像名称周围使用realpath(),以提供图像的绝对路径。

2

你可以做如下的PHP:

function base64_to_jpeg($base64_string, $output_file) { 
    $ifp = fopen($output_file, "wb"); 
    fwrite($ifp, base64_decode($base64_string)); 
    fclose($ifp); 
    return($output_file); 
} 
$facebook->setFileUploadSupport(true); 
$image = base64_to_jpeg($your_base64_string, 'tmp.jpg'); 
$args = array('message' => 'Some message'); 
$args['image'] = '@' . realpath($image); 
$data = $facebook->api('/your_user_id/photos', 'post', $args); 
unlink($image); 
+0

在发布复制和粘贴样板/逐字回答多个问题时要小心,这些往往会被社区标记为“垃圾”。如果你这样做,那么它通常意味着问题是重复的,所以将它们标记为:http://stackoverflow.com/questions/3273198 – Kev

+0

@Kev好的。但是这里的问题只针对PHP,而你链接的那个没有编程语言的限制,这就是为什么我认为我会更好地以同样的方式回答他们两个问题。还有,为什么我不会将其中任何一个标记为重复。回答其中一个链接到我对另一个问题的答案会更好吗? (我希望这是有道理的,对不起我的英文) – Gueno