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一些公用函数的集合
Mar 27 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
php实现图片添加水印功能
Feb 13 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 PHP
PHP常量及变量区别原理详解
Aug 14 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验证session无效的解决方法
2014/11/04 PHP
php实现短信发送代码
2015/07/05 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
python实现清屏的方法
2015/04/30 Python
Python读取键盘输入的2种方法
2015/06/16 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
python下载的库包存放路径
2020/07/27 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
全陪导游欢迎词
2014/01/17 职场文书
自我反省检讨书
2014/01/23 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
5s推行计划书
2014/05/06 职场文书
团拜会策划方案
2014/06/07 职场文书
高中生学习计划书
2014/09/15 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
索尼ICF-36收音机评测
2022/04/30 无线电
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript