Tải lên hình ảnh REST API codeigniter 3

Imgur là nhà cung cấp dịch vụ lưu trữ và chia sẻ hình ảnh trực tuyến. Bạn có thể chia sẻ hình ảnh trực tuyến qua Imgur mà không cần lưu trữ chúng trên máy chủ của mình. Nếu ứng dụng web của bạn có chức năng tải lên hình ảnh và muốn tối ưu hóa không gian máy chủ, lưu trữ hình ảnh vào Imgur là cách tốt nhất để sử dụng hình ảnh mà không cần lưu trữ trên máy chủ. Các tệp hình ảnh có thể được tải lên Imgur và sử dụng liên kết hình ảnh Imgur để hiển thị trên trang web

Imgur API cung cấp cách lập trình để tải lên và quản lý hình ảnh trong máy chủ Imgur. Imgur API là một dịch vụ API REST chấp nhận các yêu cầu HTTP và trả về các phản hồi JSON. Bạn có thể tích hợp API Imgur bằng PHP cURL. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tải hình ảnh lên Imgur thông qua API và nhận liên kết hình ảnh từ API Imgur bằng PHP

Đăng ký ứng dụng Imgur

Cần có Client ID để xác thực và sử dụng Imgur API. Trước khi bắt đầu với API Imgur, hãy tạo một ứng dụng trên tài khoản Imgur của bạn để lấy ID khách hàng và Bí mật khách hàng

  • Đầu tiên, đăng ký tài khoản Imgur và đăng nhập
  • Đăng ký ứng dụng từ trang Ứng dụng khách OAuth của Imgur – https://api.imgur.com/oauth2/addclient
    Tải lên hình ảnh REST API codeigniter 3
  • Khi đăng ký Ứng dụng thành công, ID khách hàng và bí mật khách hàng sẽ được tạo. Thu thập Client ID để bắt đầu với Imgur API
  • Bạn cũng có thể lấy ID khách hàng từ trang Cài đặt ứng dụng (https://imgur.com/account/settings/apps).
    Tải lên hình ảnh REST API codeigniter 3
  • ID khách hàng này bắt buộc phải được chuyển với tiêu đề ủy quyền trong yêu cầu API Imgur.
    'Authorization: Client-ID your-imgur-app-client-id'

Tải hình ảnh lên qua API Imgur bằng PHP (Mẫu mã)

Trong ví dụ sau, chúng tôi sẽ sử dụng API Imgur để tải hình ảnh lên và lấy URL của hình ảnh

  • Chỉ định ID khách hàng sẽ được sử dụng để ủy quyền
  • Nhận dữ liệu từ hình ảnh nguồn bằng PHP file_get_contents()
  • Sử dụng PHP cURL để đăng ảnh lên Imgur API (API URL.
    // Client ID of Imgur App
    $IMGUR_CLIENT_ID = "YOUR_CLIENT_ID";

    // Source image
    $image_source = file_get_contents("images/codex-image.jpg");

    // Post image to Imgur via API
    $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, array('image' => base64_encode($image_source)));
    $response = curl_exec($ch);
    curl_close($ch);

    // Decode API response to array
    $responseArr = json_decode($response);

    // Print API response
    print '

    '; print_r($responseArr); print '
    0)
  • Tìm nạp phản hồi API và giải mã thành mảng bằng hàm json_decode() trong PHP
  • Truy xuất URL liên kết hình ảnh từ phản hồi API bằng PHP
// Client ID of Imgur App
$IMGUR_CLIENT_ID = "YOUR_CLIENT_ID";

// Source image
$image_source = file_get_contents("images/codex-image.jpg");

// Post image to Imgur via API
$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, array('image' => base64_encode($image_source)));
$response = curl_exec($ch);
curl_close($ch);

// Decode API response to array
$responseArr = json_decode($response);

// Print API response
print '

'; print_r($responseArr); print '
';

// Hiển thị hình ảnh từ Imgur
printf('', $responseArr->data->link);

Phản hồi API.
Khi tải lên thành công, API Imgur sẽ trả về phản hồi sau ở định dạng JSON.

{
  "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
}

Tải lên hình ảnh bằng API Imgur bằng PHP (Ví dụ hoạt động)

Tập lệnh ví dụ này cho biết cách tích hợp Imgur API trong biểu mẫu tải lên hình ảnh để tải lên và nhúng hình ảnh vào trang web mà không cần lưu trữ trên máy chủ

Mẫu Tải lên HTML.
Biểu mẫu HTML này cho phép bạn chọn tệp hình ảnh để tải lên và nhập giá trị cho một số trường tùy chọn.

  • Xác định các phần tử HTML mà
    • Cho phép chọn tệp hình ảnh để tải lên
    • Cho phép nhập tiêu đề và văn bản mô tả
  • Thẻ phải chứa thuộc tính
    // Client ID of Imgur App
    $IMGUR_CLIENT_ID = "YOUR_CLIENT_ID";

    // Source image
    $image_source = file_get_contents("images/codex-image.jpg");

    // Post image to Imgur via API
    $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, array('image' => base64_encode($image_source)));
    $response = curl_exec($ch);
    curl_close($ch);

    // Decode API response to array
    $responseArr = json_decode($response);

    // Print API response
    print '

    '; print_r($responseArr); print '
    1 để đăng dữ liệu hình ảnh
    

Image

Title

Description

Khi gửi biểu mẫu, biểu mẫu sẽ được đăng lên tập lệnh phía máy chủ (

// Client ID of Imgur App
$IMGUR_CLIENT_ID = "YOUR_CLIENT_ID";

// Source image
$image_source = file_get_contents("images/codex-image.jpg");

// Post image to Imgur via API
$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, array('image' => base64_encode($image_source)));
$response = curl_exec($ch);
curl_close($ch);

// Decode API response to array
$responseArr = json_decode($response);

// Print API response
print '

'; print_r($responseArr); print '
0) để xử lý thêm

Tải hình ảnh lên bằng API Imgur (tải lên. php).
Tập lệnh phía máy chủ này xử lý quá trình tải lên tệp bằng API Imgur bằng PHP.

  • Nhận dữ liệu hình ảnh từ đầu vào của biểu mẫu bằng PHP $_FILES
  • Nhận một số thông tin bổ sung (tiêu đề và mô tả) từ đầu vào của biểu mẫu bằng PHP $_POST
  • Truy xuất dữ liệu từ hình ảnh bằng file_get_contents() trong PHP
  • Mã hóa dữ liệu hình ảnh thành chuỗi base64 bằng hàm base64_encode() trong PHP
  • Thực thi yêu cầu cURL để đăng hình ảnh lên Imgur API
  • sử dụng PHP

  • Nhận liên kết hình ảnh từ phản hồi API (______11)

// Client ID of Imgur App
$IMGUR_CLIENT_ID = "YOUR_CLIENT_ID";

$statusMsg = $valErr = '';
$status = 'danger';
$imgurData = array();

// If the form is submitted
if(isset($_POST['submit'])){

    // Validate form input fields
    if(empty($_FILES["image"]["name"])){
        $valErr .= 'Please select a file to upload.
';
    }

    // Check whether user inputs are empty
    if(empty($valErr)){
        // Get file info
        $fileName = basename($_FILES["image"]["name"]);
        $fileType = pathinfo($fileName, PATHINFO_EXTENSION);

        // Allow certain file formats
        $allowTypes = array('jpg','png','jpeg','gif');
        if(in_array($fileType, $allowTypes)){
            // Source image
            $image_source = file_get_contents($_FILES['image']['tmp_name']);

            // API post parameters
            $postFields = array('image' => base64_encode($image_source));

            if(!empty($_POST['title'])){
                $postFields['title'] = $_POST['title'];
            }

            if(!empty($_POST['description'])){
                $postFields['description'] = $_POST['description'];
            }

            // Post image to Imgur via API
            $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;

                $status = 'success';
                $statusMsg = 'The image has been uploaded to Imgur successfully.';
            }else{
                $statusMsg = 'Image upload failed, please try again after some time.';
            }
        }else{
            $statusMsg = 'Sorry, only an image file is allowed to upload.';
        }
    }else{
        $statusMsg = '

Please fill all the mandatory fields:

'.trim($valErr, '
');
    }
}

?>

Hiển thị hình ảnh từ Imgur.
Truy xuất liên kết từ phản hồi API để nhúng và hiển thị hình ảnh với URL Imgur trên trang web.

data->title; ?>

data->description; ?>

Imgur URL: data->link; ?>

Phần kết luận

Tải lên hình ảnh với API Imgur rất hữu ích khi bạn không muốn tăng tải cho không gian lưu trữ bằng cách lưu trữ các hình ảnh đã tải lên trên máy chủ. Bạn có thể tự động tải hình ảnh lên Imgur thông qua API và truy cập hình ảnh trên trang web bằng PHP. Tập lệnh mẫu này giúp bạn tải hình ảnh lên Imgur qua API, tạo liên kết hình ảnh và nhúng hoặc hiển thị hình ảnh trên trang web bằng PHP

Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không?

Làm cách nào để tải lên hình ảnh bằng API REST trong CodeIgniter 3?

Cách tải hình ảnh và tệp lên trong CodeIgniter .
Tạo thư mục
Tạo bộ điều khiển
Đặt tùy chọn tải tệp lên
Trình trợ giúp biểu mẫu
Chế độ xem kết cấu
Thông báo thành công
Phần kết luận

Làm cách nào để tải lên nhiều hình ảnh trong codeigniter 3?

Tải lên nhiều tệp và hình ảnh trong CodeIgniter .
Tạo biểu mẫu HTML để chọn tệp hình ảnh để tải lên
Tải nhiều hình ảnh lên máy chủ cùng lúc bằng thư viện Tải lên của CodeIgniter
Lưu trữ dữ liệu tệp trong cơ sở dữ liệu MySQL
Lấy hình ảnh từ cơ sở dữ liệu và hiển thị chúng trên trang web

Làm cách nào để tải lên hình ảnh bằng API REST trong php?

Tải hình ảnh lên qua API Imgur bằng PHP (Mẫu mã) .
Chỉ định ID khách hàng sẽ được sử dụng để ủy quyền
Nhận dữ liệu từ hình ảnh nguồn bằng PHP file_get_contents()
Tìm nạp phản hồi API và giải mã thành mảng bằng hàm json_decode() trong PHP
Truy xuất URL liên kết hình ảnh từ phản hồi API bằng PHP

Làm cách nào để tải lên hình ảnh trong codeigniter 4?

Tải lên hình ảnh Ajax Codeigniter 4 với ví dụ xem trước .
Bước 1. Cài đặt ứng dụng Codeigniter
Bước 2. Bật gỡ lỗi
Bước 3. Tạo cơ sở dữ liệu và bảng
Bước 4. Thêm chi tiết cơ sở dữ liệu
Bước 5. Tạo bộ điều khiển tải lên hình ảnh AJAX
Bước 6. Tạo tuyến đường
Bước 7. Thiết lập chế độ xem tải lên tệp
Bước 8. Chạy dự án Codeigniter