PHP整合七牛实现上传文件


Posted in PHP onJuly 03, 2015

七牛支持抓取远程图片 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下使用以下代码连接并测试
Apr 09 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
php中$_POST与php://input的区别实例分析
Jan 07 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 #PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 #PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 #PHP
PHP的Socket通信之UDP通信实例
Jul 02 #PHP
php三元运算符知识汇总
Jul 02 #PHP
PHP中foreach()用法汇总
Jul 02 #PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 #PHP
You might like
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
python超简单解决约瑟夫环问题
2015/05/12 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python科学计算之Pandas详解
2017/01/15 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python购物车程序简单代码
2018/04/18 Python
python英语单词测试小程序代码实例
2019/09/09 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
美国旅游网站:Tours4Fun
2017/02/17 全球购物
Hotels.com南非:酒店预订
2017/11/02 全球购物
经济信息管理专业大学生求职信
2013/09/27 职场文书
木工主管岗位职责
2013/12/08 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
汽车广告策划方案
2014/05/31 职场文书
公司副总经理任命书
2014/06/05 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
维稳工作承诺书
2015/01/20 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python