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 相关文章推荐
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
php 函数使用方法与函数定义方法
May 09 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
PHP文件缓存类实现代码
Oct 26 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
第十二节 类的自动加载 [12]
2006/10/09 PHP
php 远程图片保存到本地的函数类
2008/12/08 PHP
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
使用requests库制作Python爬虫
2018/03/25 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
python安装requests库的实例代码
2019/06/25 Python
Python字典对象实现原理详解
2019/07/01 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
寄语十八大感言
2014/02/07 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
教师学期末个人总结
2015/02/13 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
Python下opencv库的安装过程及问题汇总
2021/06/11 Python