[Imgur API] 透過 CodeIgniter 上傳圖片

來說明怎麼在 CodeIgniter 透過 Imgur API 把檔案傳到 Imgur 上。

首先要在 Imgur 建立一個 Application,而 CodeIgniter 要設定好要上傳的 Controller 和 view

在使用 upload library 的時候注意上傳的路徑:

$upload_path='./uploads/';
$config['upload_path'] = $upload_path;

 

因為 imgur API 是抓某個路徑上傳到他們的 server,所以當圖片上傳後,就可以藉由以下的 code 將檔案上傳到 imgur 並取得 URL,這裡我們還會需要 Imgur APP 的 Client ID

$IMGUR_CLIENT_ID = YOUR_IMGUR_CLIENT_ID;
if ($this->upload->do_upload('image')) {
    $data = array('upload_data' => $this->upload->data());

    $image_source = file_get_contents($upload_path . $data["upload_data"] ["file_name"]);
    $postFields = array(
        'image' => base64_encode($image_source)
    );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.imgur.com/3/image');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Authorization: Client-ID ' . $IMGUR_CLIENT_ID
    ));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
    $response = curl_exec($ch);
    curl_close($ch);
            // Decode API response to array
    $responseArr = json_decode($response);
    // Check image upload status
    if (!empty($responseArr
                ->data
                ->link)) {
            $imgurData = $responseArr;
            var_dump($imgurData);
        } else {
            $statusMsg = 'Image upload failed, please try again after some time.';
            echo $statusMsg;
        }
}

之後再把需要的值寫到資料庫就好了。

$imgurData 的內容大概會長這樣,可以依需求抓想要的值。

{ 
"data": { 
"id": "rwYHrBN", 
"title": null, 
"description": null, 
"datetime": 1649096564, 
"type": "image/jpeg", 
"animated": false, 
"width": 640, 
"height": 400, 
"size": 78307, 
"views": 0, 
"bandwidth": 0, 
"vote": null, 
"favorite": false, 
"nsfw": null, 
"section": null, 
"account_url": null, 
"account_id": 0, 
"is_ad": false, 
"in_most_viral": false, 
"has_sound": false, 
"tags": [], 
"ad_type": 0, 
"ad_url": "", 
"edited": "0", 
"in_gallery": false, 
"deletehash": "addXM7EZF2UPGlp", 
"name": "", 
"link": "https://i.imgur.com/rwYHrBN.jpg" 
}, 
"success": true, 
"status": 200 
}

 

參考:
How to Upload Image to Imgur via API using PHP

 

課程推薦

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

本課程專為希望深入了解 HTML 並有效結合 SEO 策略的學員設計。我們將重點放在 HTML 的深度學習與應用上,同時穿插介紹如何透過搜索引擎優化提升網站能見度。透過即時互動式的直播教學,加上 ChatGPT 的輔助,您將學習到如何建立一個結構優良、美觀且符合 SEO 標準的網站。這不僅會提升網站的用戶體驗,還會大幅提高網站的搜索引擎排名,進而增加訪客流量和潛在客戶。
用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

在快速變遷的職場中,提升競爭力成為關鍵。透過引領潮流的AI技術,ChatGPT和Midjourney將助您勇攀高峰。無論您是AI新手還是專家,這個課程將引導您從入門到精通,解密AI的奧秘,並學習如何運用於職場。
GitHub Copilot AI 程式碼編輯工具應用實務班

GitHub Copilot AI 程式碼編輯工具應用實務班

讓學員瞭解有效地使用該工具來加速開發流程、提高程式碼品質和生產力。課程重點放在以 JavaScript 程式語言為例,介紹 Copilot 的基本原理、使用方法和最佳實踐。

輸入折扣碼 TC1456JA 還可以額外獲得 NT$500 優惠喔。

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

掌握Clipchamp AI的操作技巧,靈活運用Clipchamp AI進行影片編輯和創作,實現創意表達和傳播目的。

輸入折扣碼 TC1451JAN 還可以額外獲得 NT$500 優惠喔。

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

Looker Studio除了可協助使用者監控網站流量、廣告成效、選擇匯入資源的管道之外,還可以將數據資料多平台整合、數據報表即時更新、數據範本可重複套用的效益,透過自動化系統,將數據全部匯入同一個報表平台,是企業不可或缺的重要工具。

輸入折扣碼 TC1270JIA 還可以額外獲得 NT$500 優惠喔。

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。