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
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
php 静态页面中显示动态内容
Aug 14 PHP
PHP里的中文变量说明
Jul 23 PHP
PHP中使用数组实现堆栈数据结构的代码
Feb 05 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 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高级编程-函数-郑阿奇
2011/07/04 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
Node.js学习入门
2017/01/03 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
Vue实现穿梭框效果
2020/09/30 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
Python3中的json模块使用详解
2018/05/05 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
使用python接入微信聊天机器人
2020/03/31 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
网络工程师个人的自我评价范文
2013/10/01 职场文书
函授本科自我鉴定
2013/11/03 职场文书
元旦晚会策划方案
2014/02/18 职场文书
机电专业求职信
2014/06/14 职场文书
北京奥运会口号
2014/06/21 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript