首頁 >後端開發 >php教程 >PHP整合七牛實作上傳文件

PHP整合七牛實作上傳文件

不言
不言原創
2018-06-06 11:26:092160瀏覽

這篇文章主要介紹了PHP整合七牛實現上傳文件的相關資料,需要的朋友可以參考下

七牛支持抓取遠程圖片API,用access_key secret_key url 生成access_token, 把access_token加在header 裡,然後向post url 就完成上傳了。

Sample code:

<?php 
/* 
 * 
 * @desc URL安全形式的base64编码 
 * @param string $str 
 * @return string 
 */ 
 
 
function urlsafe_base64_encode($str){ 
  $find = array("+","/"); 
  $replace = array("-", "_"); 
  return str_replace($find, $replace, base64_encode($str)); 
} 
 
/** 
 * generate_access_token 
 * 
 * @desc 签名运算 
 * @param string $access_key 
 * @param string $secret_key 
 * @param string $url 
 * @param array $params 
 * @return string 
 */ 
function generate_access_token($access_key, $secret_key, $url, $params = &#39;&#39;){ 
  $parsed_url = parse_url($url); 
  $path = $parsed_url[&#39;path&#39;]; 
  $access = $path; 
  if (isset($parsed_url[&#39;query&#39;])) { 
    $access .= "?" . $parsed_url[&#39;query&#39;]; 
  } 
  $access .= "\n"; 
  if($params){ 
    if (is_array($params)){ 
      $params = http_build_query($params); 
    } 
    $access .= $params; 
  } 
  $digest = hash_hmac(&#39;sha1&#39;, $access, $secret_key, true); 
  return $access_key.&#39;:&#39;.urlsafe_base64_encode($digest); 
} 
 
/** 
 * 测试 
 */ 
 
$access_key = &#39;&#39;&#39;your access_key&#39;; 
$secret_key = &#39;your secret_key&#39;; 
 
$fetch = urlsafe_base64_encode(&#39;http://203.208.46.200/images/srpr/logo11w.png&#39;); 
$to = urlsafe_base64_encode(&#39;ibeircn:11.jpg&#39;); 
 
$url = &#39;http://iovip.qbox.me/fetch/&#39;. $fetch .&#39;/to/&#39; . $to; 
 
$access_token = generate_access_token($access_key, $secret_key, $url); 
 
$header[] = &#39;Content-Type: application/json&#39;; 
$header[] = &#39;Authorization: QBox &#39;. $access_token; 
 
 
$con = send(&#39;iovip.qbox.me/fetch/&#39;.$fetch.&#39;/to/&#39;.$to, $header); 
var_dump($con); 
 
function send($url, $header = &#39;&#39;) { 
  $curl = curl_init($url); 
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($curl, CURLOPT_HEADER,1); 
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
  curl_setopt($curl, CURLOPT_POST, 1); 
 
  $con = curl_exec($curl); 
 
  if ($con === false) { 
    echo &#39;CURL ERROR: &#39; . curl_error($curl); 
  } else { 
    return $con; 
  } 
} 
?>

以上所述就是本文的全部了,希望大家能夠喜歡。

以上是PHP整合七牛實作上傳文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn