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边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
JS实现php的伪分页
May 25 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
PHP5函数小全(分享)
Jun 06 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 PHP
解决laravel查询构造器中的别名问题
Oct 17 PHP
phpquery中文手册
Mar 18 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
8个必备的PHP功能开发
2015/10/02 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
jquery处理json对象
2014/11/03 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
JointJS流程图的绘制方法
2018/12/03 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
详解Python装饰器
2019/03/25 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
python实现在线翻译功能
2020/03/03 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
10个示例带你掌握python中的元组
2020/11/23 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
八项规定对照检查材料
2014/08/31 职场文书
建议书格式
2015/02/04 职场文书
用人单位聘用意向书
2015/05/11 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS