>  기사  >  백엔드 개발  >  Qiniu는 PHP를 통합하여 파일을 업로드합니다.

Qiniu는 PHP를 통합하여 파일을 업로드합니다.

WBOY
WBOY원래의
2016-08-08 09:21:40803검색

Qiniu는 원격 이미지 캡처 API를 지원하며, access_key + secret_key + url을 사용하여 access_token을 생성하고, 헤더에 access_token을 추가한 후 게시물 URL에 업로드합니다.

샘플 코드:

  1. /* 
  2.  * 
  3.  * @desc URL 보안 형태의 base64码 
  4.  * @param string $str 
  5.  * @return string 
  6.  */  
  7.   
  8.   
  9. 함수 urlsafe_base64_encode($str){  
  10.     $find = array("+","/");  
  11.     $replace = array("-", "_");  
  12.     return str_replace($find, $replace, base64_encode($str));  
  13. }  
  14.   
  15. /** 
  16.  * generate_access_token 
  17.  * 
  18.  * @desc 签name运算 
  19.  * @param string $access_key 
  20.  * @param string $secret_key
  21.  * @param string $url 
  22.  * @param array  $params 
  23.  * @return string 
  24.  */  
  25. function generate_access_token($access_key, $secret_key, $url, $params = '' ){  
  26.     $parsed_url = parse_url($url);  
  27.     $path = $parsed_url['path'];  
  28.     $access = $path;  
  29.     if (isset($parsed_url['query'])) {  
  30.         $access .= "?" . $parsed_url['쿼리'];  
  31.     }  
  32.     $access .= "n";  
  33.     if($params){  
  34.         if (is_array($params)){  
  35.            $params = http_build_query($params);  
  36.         }  
  37.         $access .= $params;  
  38.     }  
  39.     $digest = hash_hmac('sha1', $access, $secret_key, true);  
  40.     $access_key를 반환합니다.':'.urlsafe_base64_encode($digest);  
  41. }  
  42.   
  43. /**
  44. * 테스트
  45. */  
  46.   
  47. $access_key = '''your access_key';  
  48. $secret_key = '당신의 비밀_키';  
  49.   
  50. $fetch = urlsafe_base64_encode('http://203.208.46.200/images/srpr/logo11w.png');  
  51. $to = urlsafe_base64_encode('ibeircn:11.jpg');  
  52.   
  53. $url  = 'http://iovip.qbox.me/fetch/'. $fetch .'/to/' . $to;  
  54.   
  55. $access_token = generate_access_token($access_key, $secret_key, $url);  
  56.   
  57. $header[] = '콘텐츠 유형: application/json';  
  58. $header[] = '승인: QBox '. $access_token;  
  59.   
  60.   
  61. $con = send('iovip.qbox.me/fetch/'.$fetch.'/to/'.$to, $header);  
  62. var_dump($con);  
  63.   
  64. 함수 send($url, $header = '') {  
  65.     $curl = curl_init($url);  
  66.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
  67.     curl_setopt($curl, CURLOPT_HEADER,1);  
  68.     curl_setopt($curl, CURLOPT_HTTPHEADER, $header);  
  69.     curl_setopt($curl, CURLOPT_POST, 1);  
  70.   
  71.     $con = curl_exec($curl);  
  72.   
  73.     if ($con === false) {  
  74.         에코 'CURL ERROR: ' . 컬_오류($curl);  
  75.     } else {  
  76.         return $con;  
  77.     }  
  78. }  
  79. ?>  

    출처: >

위 내용은 내용의 측면을 포함하여 Qiniu의 PHP 업로드 파일 통합을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.