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代码
Dec 06 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
怎样去阅读一份php源代码
Aug 21 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP命名空间简单用法示例
Dec 28 PHP
php中对象引用和复制实例分析
Aug 14 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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获取服务器信息的实现代码
2013/02/04 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
Python内置函数dir详解
2015/04/14 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
python 不以科学计数法输出的方法
2018/07/16 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
如何利用cmp命令比较文件
2016/04/11 面试题
编辑硕士自荐信范文
2013/11/27 职场文书
保险公司开门红口号
2014/06/21 职场文书
会计专业求职信
2014/08/10 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书