2011-11-30 102 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