Thứ Hai, 25 tháng 2, 2019

Tạo trang upload ảnh sử dụng Imgur API trong PHP

Imgur cung cấp cho các nhà phát triển tải lên hình ảnh sử dụng ứng dụng của họ. Đối với điều này, bạn chỉ cần đăng ký một tài khoản trên Imgur và nhận một Application Client ID. Trong bài viết này tôi sẽ hướng dẫn các bước của quá trình để tải lên hình ảnh bằng cách sử dụng API Imgur trong PHP. Điều này tương đối dễ dàng. Bạn chỉ cần gửi một yêu cầu POST vào một tập tin trên trang web của họ.

Sign Up
Bạn truy cập vào trang này để tiến hành đăng ký. Hỗ trợ đăng ký tài khoản bằng tài khoản mạng xã hội nhữ Google, Facebook, Twitter & Yahoo! hoặc bạn có thể đăng ký trực tiếp.

Tạo Application & lấy Client ID
Bạn cần tạo một app để lấy Client ID. Để tạo app bạn truy cập vào trang này. Chọn Anonymous usage without user authorization tại phần Authorization Type

 

Điền vào CAPTCHA. Sau đó nhấn submit

Bây giờ bạn sẽ có client ID và client Secret. Nhưng bạn chỉ cần lấy client ID thôi nhé (đừng tham :)) )
 

HTML
PHP:
<form action="upload.php" enctype="multipart/form-data" method="POST">
 Choose Image : <input name="img" size="35" type="file"/><br/>
 <input type="submit" name="submit" value="Upload"/>
</form>
File upload.php

PHP:
<?
$img=$_FILES['img'];
if(isset($_POST['submit'])){ 
 if($img['name']==''){  
  echo "<h2>An Image Please.</h2>";
 }else{
  $filename = $img['tmp_name'];
  $client_id="88fd52d307ecceb";
  $handle = fopen($filename, "r");
  $data = fread($handle, filesize($filename));
  $pvars   = array('image' => base64_encode($data));
  $timeout = 30;
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
  curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
  $out = curl_exec($curl);
  curl_close ($curl);
  $pms = json_decode($out,true);
  $url=$pms['data']['link'];
  if($url!=""){
   echo "<h2>Uploaded Without Any Problem</h2>";
   echo "<img src='$url'/>";
  }else{
   echo "<h2>There's a Problem</h2>";
   echo $pms['data']['error'];  
  } 
 }
}
?>
----
Sửa lỗi
Đôi khi code không hoạt động và bị lỗi. Kiểm tra:
  • PHP JSON extension đã được cài đặt chưa?
  • PHP cURL extension đã được cài đặt chưa?

Nếu không khắc phục được, bạn hãy thêm dòng dưới đây dưới biến $curl trong code:
PHP:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

Không có nhận xét nào:
Write nhận xét