·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 七牛整合PHP上传文件

七牛整合PHP上传文件

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
七牛整合php上传文件七牛支持抓取远程图片 API,用 access_key + secret_key + url 生成 access_token, 把 access_token 加在 header 里,然后向 post url 就完成上传了。Sample code:
  1. <?php
  2. /*
  3. *
  4. *@descURL安全形式的base64编码
  5. *@paramstring$str
  6. *@returnstring
  7. */
  8. functionurlsafe_base64_encode($str){
  9. $find=array("+","/");
  10. $replace=array("-","_");
  11. returnstr_replace($find,$replace,base64_encode($str));
  12. }
  13. /**
  14. *generate_access_token
  15. *
  16. *@desc签名运算
  17. *@paramstring$access_key
  18. *@paramstring$secret_key
  19. *@paramstring$url
  20. *@paramarray$params
  21. *@returnstring
  22. */
  23. functiongenerate_access_token($access_key,$secret_key,$url,$params=''){
  24. $parsed_url=parse_url($url);
  25. $path=$parsed_url['path'];
  26. $access=$path;
  27. if(isset($parsed_url['query'])){
  28. $access.="?".$parsed_url['query'];
  29. }
  30. $access.="\n";
  31. if($params){
  32. if(is_array($params)){
  33. $params=http_build_query($params);
  34. }
  35. $access.=$params;
  36. }
  37. $digest=hash_hmac('sha1',$access,$secret_key,true);
  38. return$access_key.':'.urlsafe_base64_encode($digest);
  39. }
  40. /**
  41. *测试
  42. */
  43. $access_key='''youraccess_key';
  44. $secret_key='yoursecret_key';
  45. $fetch=urlsafe_base64_encode('http://203.208.46.200/images/srPR/logo11w.png');
  46. $to=urlsafe_base64_encode('ibeircn:11.jpg');
  47. $url='http://iovip.qbox.me/fetch/'.$fetch.'/to/'.$to;
  48. $access_token=generate_access_token($access_key,$secret_key,$url);
  49. $header[]='Content-Type:application/json';
  50. $header[]='Authorization:QBox'.$access_token;
  51. $con=send('iovip.qbox.me/fetch/'.$fetch.'/to/'.$to,$header);
  52. var_dump($con);
  53. functionsend($url,$header=''){
  54. $curl=curl_init($url);
  55. curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
  56. curl_setopt($curl,CURLOPT_HEADER,1);
  57. curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
  58. curl_setopt($curl,CURLOPT_POST,1);
  59. $con=curl_exec($curl);
  60. if($con===false){
  61. echo'CURLERROR:'.curl_error($curl);
  62. }else{
  63. return$con;
  64. }
  65. }
  66. ?> 来源:<https://app.yinxiang.com/Home.action>