2013-12-15 76 views
0

我想通過PHP/cURL作爲Base64編碼字符串發送圖像,而不是使用file_get_contents部件。 如何做到這一點?如何通過PHP發送Base64編碼圖像?

$headers = array("Host" => "http://api.tumblr.com/", "Content-type" => "application/x-www-form-urlencoded", "Expect" => ""); 

$params = array("data" => array(file_get_contents("http://www.example.com/photo/happyholidays.jpg")),"type" => "photo"); 

oauth_gen("POST", "http://api.tumblr.com/v2/blog/$blogname/post", $params, $headers); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_USERAGENT, "TestApp"); 
curl_setopt($ch, CURLOPT_URL, "http://api.tumblr.com/v2/blog/$blogname/post"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Authorization: " . $headers['Authorization'], 
    "Content-type: " . $headers["Content-type"], 
    "Expect: ") 
); 

謝謝

回答

0

你必須閱讀無論如何圖像來獲得圖像的字節數據。只有這樣您才能將字節數據輕鬆轉換爲base64。到目前爲止我的知識,你不能直接從鏈接(圖像)發送(http post)字節。

$params = array("data" => base64_encode(file_get_contents("http://www.example.com/photo/happyholidays.jpg")),"type" => "photo"); 

如果你不想閱讀使用的file_get_contents圖像然後使用捲曲得到的字節數據的圖像。

+0

您錯過了一個數組。 – zeflex

+0

由於它只有一個圖像,它不會有任何區別。另外,如何處理$ params中的「數據」取決於函數oauth_gen(),它在這裏很模糊! –

相關問題