2012-09-07 70 views
1

我想通過CURL訪問它們的API來上傳imgur上的圖像。我想:通過CURL在imgur上傳圖像時出錯

curl -d "image=reddit.png" -d "key=myapikey" http://api.imgur.com/2/upload.json 

它提出了一個著名的錯誤:

{"error":{"message":"Image format not supported, or image is corrupt.","request":"\/\/2\/upload.json","method":"post","format":"json","parameters":"image = reddit.png, key = myapikey"}} 

我也面臨着同樣的問題,而寫一個簡單的bash腳本

#!/bin/bash 

API_KEY="myapikey"                                    
file="$1"                                  

output=$(curl -d "image=$file" -d "key=$API_KEY" http://api.imgur.com/2/upload.json)               

echo $output 

的ouytput是相同的錯誤消息如上。我試着用jpg/png這兩種格式都引發了同樣的錯誤。

所以,任何想法我在這裏做錯了什麼。

PS:我的imnage沒有損壞,我正在從包含圖像的相同目錄執行腳本/命令。

+0

我不認爲'-D 「形象= reddit.png」'就是用正確的方式[imgur API](http://api.imgur.com/)和curl。 – 2012-09-07 07:03:46

+0

@Tichodroma:但在一個例子中,他們使用[-d「image = reddit.png」](http://api.imgur.com/examples)。 – RanRag

回答

2

試試這個:

$ curl -d "[email protected]" ... 

詳見the manpage of curl和讀取-d --data選項的說明。

編輯:

對圖像進行編碼,使用base64 utility

$ base64 reddit.png > reddit.base64.png 
+0

手冊頁提到「文件的內容必須是網址編碼的」。怎麼做。 – RanRag