七牛整合PHP上传文件
作者:佚名    php网站开发编辑:admin   更新时间:2022-07-23
七牛整合php上传文件七牛支持抓取远程图片 API,用 access_key + secret_key + url 生成 access_token, 把 access_token 加在 header 里,然后向 post url 就完成上传了。Sample code:
- <?php
- /*
- *
- *@descURL安全形式的base64编码
- *@paramstring$str
- *@returnstring
- */
- functionurlsafe_base64_encode($str){
- $find=array("+","/");
- $replace=array("-","_");
- returnstr_replace($find,$replace,base64_encode($str));
- }
- /**
- *generate_access_token
- *
- *@desc签名运算
- *@paramstring$access_key
- *@paramstring$secret_key
- *@paramstring$url
- *@paramarray$params
- *@returnstring
- */
- functiongenerate_access_token($access_key,$secret_key,$url,$params=''){
- $parsed_url=parse_url($url);
- $path=$parsed_url['path'];
- $access=$path;
- if(isset($parsed_url['query'])){
- $access.="?".$parsed_url['query'];
- }
- $access.="\n";
- if($params){
- if(is_array($params)){
- $params=http_build_query($params);
- }
- $access.=$params;
- }
- $digest=hash_hmac('sha1',$access,$secret_key,true);
- return$access_key.':'.urlsafe_base64_encode($digest);
- }
- /**
- *测试
- */
- $access_key='''youraccess_key';
- $secret_key='yoursecret_key';
- $fetch=urlsafe_base64_encode('http://203.208.46.200/images/srPR/logo11w.png');
- $to=urlsafe_base64_encode('ibeircn:11.jpg');
- $url='http://iovip.qbox.me/fetch/'.$fetch.'/to/'.$to;
- $access_token=generate_access_token($access_key,$secret_key,$url);
- $header[]='Content-Type:application/json';
- $header[]='Authorization:QBox'.$access_token;
- $con=send('iovip.qbox.me/fetch/'.$fetch.'/to/'.$to,$header);
- var_dump($con);
- functionsend($url,$header=''){
- $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'CURLERROR:'.curl_error($curl);
- }else{
- return$con;
- }
- }
- ?> 来源:<https://app.yinxiang.com/Home.action>