PHP整合七牛实现上传文件

 更新时间:2015年07月03日 12:11:45   投稿:hebedich  
这篇文章主要介绍了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 = ''){ 
  $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 = '''your access_key'; 
$secret_key = 'your secret_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); 
 
function send($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 'CURL ERROR: ' . curl_error($curl); 
  } else { 
    return $con; 
  } 
} 
?> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

您可能感兴趣的文章:

相关文章

  • PHP实现根据浏览器跳转不同语言页面代码

    PHP实现根据浏览器跳转不同语言页面代码

    以下是对使用PHP实现根据浏览器跳转不同语言页面的代码进行了介绍,需要的朋友可以过来参考下
    2013-08-08
  • 逆序二维数组插入一元素的php代码

    逆序二维数组插入一元素的php代码

    逆序二维数组插入一元素的php代码,需要的朋友可以参考下
    2012-06-06
  • PHP实现动态删除XML数据的方法示例

    PHP实现动态删除XML数据的方法示例

    这篇文章主要介绍了PHP实现动态删除XML数据的方法,在前面介绍的Message_XML类基础上进行改进,增加了xml删除功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2018-03-03
  • php数组索引与键值操作技巧实例分析

    php数组索引与键值操作技巧实例分析

    这篇文章主要介绍了php数组索引与键值操作技巧,涉及php数组的遍历与索引、键值操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PHP判断数据库中的记录是否存在的方法

    PHP判断数据库中的记录是否存在的方法

    这篇文章主要介绍了PHP判断数据库中的记录是否存在的方法,通过mysql_num_rows对查询结果进行判断来实现这一功能,非常实用,需要的朋友可以参考下
    2014-11-11
  • PHP中十六进制颜色与RGB颜色值互转的方法

    PHP中十六进制颜色与RGB颜色值互转的方法

    今天小编就为大家分享一篇关于PHP中十六进制颜色与RGB颜色值互转的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • php树型类实例

    php树型类实例

    这篇文章主要介绍了php树型类,涉及数据结构与算法中的树结构,实例相对简单易懂,对于学习数据结构有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • PHP高并发高负载下的3种实战场景解决方法示例

    PHP高并发高负载下的3种实战场景解决方法示例

    这篇文章主要为大家介绍了PHP高并发高负载下的3种实战场景解决方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 由php if 想到的些问题

    由php if 想到的些问题

    在编写一段并不复杂的脚本的时候,发现了一个问题。先说说代码,它的主要功能是用 PHP 判断是否生成一段 Javascript,并使用 Cookie 记录状态。
    2008-03-03
  • PHP实现简单搜歌的方法

    PHP实现简单搜歌的方法

    这篇文章主要介绍了PHP实现简单搜歌的方法,实例分析了php通过新浪乐库搜索接口查询歌曲的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论