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中一个控制字符串输出的函数
Oct 09 PHP
解析php常用image图像函数集
Jun 24 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
php实现的百度搜索某地天气的小偷代码
Apr 23 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
php实现的Captcha验证码类实例
Sep 22 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 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
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
JScript的条件编译
2007/05/29 Javascript
List all the Databases on a SQL Server
2007/06/21 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
javascript动态设置样式style实例分析
2015/05/13 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
Python中类型关系和继承关系实例详解
2015/05/25 Python
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
python爬虫用mongodb的理由
2020/07/28 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
电信专业应届生自荐信
2013/09/28 职场文书
电子商务专业个人的自我评价
2013/12/19 职场文书
高中运动会入场词
2014/02/14 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
小学六年级毕业感言
2015/07/30 职场文书
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript
服务器SVN搭建图文安装过程
2022/06/21 Servers