php总结 --- 18. 七牛云存储

第三方资源拉取

 1 /**
 2  * 七牛云抓取文件
 3  * @param string $url 文件URL地址
 4  *
 5  * 参考地址:http://developer.qiniu.com/code/v6/api/kodo-api/rs/fetch.html
 6  */
 7 function qiniuFetch($url){
 8     $encodedURL = str_replace(array(‘+‘, ‘/‘), array(‘-‘, ‘_‘), base64_encode($url));
 9     $encodedEntryURI = str_replace(array(‘+‘, ‘/‘), array(‘-‘, ‘_‘), base64_encode(C(‘QINIU_BUCKET‘)));
10     $url = ‘/fetch/‘ . $encodedURL . ‘/to/‘ . $encodedEntryURI;
11
12     $sign = hash_hmac(‘sha1‘, $url . "\n", C(‘QINIU_SK‘), true);
13     $token = C(‘QINIU_AK‘) . ‘:‘ . str_replace(array(‘+‘, ‘/‘), array(‘-‘, ‘_‘), base64_encode($sign));
14
15     $header = array(‘Host: iovip.qbox.me‘, ‘Content-Type:application/x-www-form-urlencoded‘, ‘Authorization: QBox ‘ . $token);
16
17     $curl = curl_init();
18     curl_setopt($curl, CURLOPT_URL, trim(‘http://iovip.qbox.me‘ . $url, ‘\n‘));
19     curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
20     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
21     curl_setopt($curl, CURLOPT_POSTFIELDS, "");
22     $result = json_decode(curl_exec($curl), true);
23     curl_close($curl);
24
25     return $result[‘key‘] ? C(‘QINIU_HOST‘) . $result[‘key‘] : false;
26 }

上传图片(服务端)

 1 /**
 2      * 文件上传获取Token
 3      */
 4     public function getToken(){
 5         $type = I(‘get.type‘, 0, ‘intval‘);
 6         header("Content-type:text/html;charset=utf-8");
 7         $data =  array("scope" => C(‘QINIU_BUCKET‘), "deadline" => time() + 3600);
 8         $data1 = array_merge($data, array(‘returnUrl‘ => ‘http://icms.weilt.net‘.U(‘Home/Upload/uploadReturn‘), ‘returnBody‘ => ‘{"url":"‘.C(‘QINIU_HOST‘).‘$(key)", "size":$(fsize), "name":"$(fname)"}‘));
 9         $token1 = $this->token($data1, C(‘QINIU_AK‘), C(‘QINIU_SK‘));
10         $data2 = array_merge($data, array(‘callbackUrl‘ => ‘http://icms.weilt.net‘.U(‘Home/Upload/uploadCallback‘), ‘callbackBody‘ => ‘url=‘.C(‘QINIU_HOST‘).‘$(key)&size=$(fsize)&name=$(fname)‘));
11         $token2 = $this->token($data2, C(‘QINIU_AK‘), C(‘QINIU_SK‘));
12         if($type == 3){
13             $this->ajaxReturn(array(‘token1‘ => $token1, ‘token2‘ => $token2));
14         }else if($type == 2){
15             $this->ajaxReturn($token2);
16         }else{
17             $this->ajaxReturn($token1);
18         }
19     }
20     /**
21      * 单文件上传返回信息
22      */
23     public function uploadReturn(){
24         $str = json_decode(base64_decode(str_replace(array(‘-‘, ‘_‘), array(‘+‘, ‘/‘), $_GET[‘upload_ret‘])), true);
25         exit(‘{"error":0, "url": "‘.$str[‘url‘].‘"}‘);
26     }
27     /**
28      * 上传成功回调函数
29      */
30     public function uploadCallback(){
31         exit(‘{"error":0, "url": "‘.$_POST[‘url‘].‘"}‘);
32     }

客户端

1 <form method="post" action="http://upload.qiniu.com/" enctype="multipart/form-data">
2     <input name="token" type="hidden" value="...">
3     <input name="file" type="file" />
4 </form>

可以使用回调方式,或者直接返回的方式

时间: 2024-10-12 18:49:34

php总结 --- 18. 七牛云存储的相关文章

DjangoUeditor 使用七牛云存储

DjangoUeditor 是一个相当赞的django 富文本编辑器,你可以在 https://github.com/zhangfisher/DjangoUeditor 查看相关信息. 我一直想着把DjangoUeditor 的图片和文件存储修改为七牛云存储,但又觉得自己js水平太菜,所以就一直拖延到现在, 其实我根本没改js. 好了,下面不废话,开始. 一.文件上传到七牛 在修改 DjangoUeditor 存储到七牛之前,我第一步要尝试的,就是本地文件上传到七牛. 这一步需要七牛的sdk h

小程序对接七牛云存储

前言: 做小程序有一段时间了,总结一下做过的技术点,特此贡献给小伙伴们!项目中,有图片存储.视频存储.录音存储这三个需要云对接存储. 一.图片/视频/录音上传七牛对接 准备工作: a.你要有一个七牛账号,实名认证后,在七牛的个人中心,有个秘钥管理-里面有一对秘钥,是上传必须的.这对秘钥,配置在后端,配置时可以设置允许上传格式,也可以设置为任何格式都可上传,让我们的后端大哥去慢慢弄吧.另外,还需要在七牛的对象存储里新建一个存储空间,所要上传的文件就是存储在你创建的空间里,如果你为了方便管理,也可以

.Net Core实现将文件上传到七牛云存储

功能:将图片上传到七牛云存储 准备工作 注册七牛账号,提交实名认证(基本上1天内内审核通过) 登录七牛后台->对象存储->新建空间 (基本概念:https://developer.qiniu.com/kodo/manual/3978/the-basic-concept) 新建空间后会有免费域名可以使用.但是:测试域名,限总流量,限单 IP 访问频率,限速,仅供测试使用,不能用于自定义域名的 CNAME.建议还是使用自己的已经ICP备案的域名 CDN加速域名(自己的ICP备案的域名)提交后有个处

用ueditor上传图片、文件等到七牛云存储

ueditor上传文件,是用数据流的形式上传的. 而七牛云存储官方文档中,只提供了文件路径上传的方式. 但是,仅仅是在官方文档中写了这一种方式. 事实上,利用VS的对象管理器,打开Qiniu的dll,我们可以看到以下东西: 其实Qiniu提供的SDK中,是可以利用文件流上传文件的. 所以,根据官方文档提供的案例,我们可以将上传改写成下面的样子: /// <summary> /// 上传文件 /// </summary> /// <param name="key&qu

我为什么选择七牛云存储

在写这篇文章之前先给大家分享一个小福利:2017最新七牛云存储九折优惠券:61d1fd4d 接下来给大家谈一下我用七牛云存储的原因,从七牛一开始的时候我就开始用了,刚开始的时候七牛好像只是做静态存储,那时候我把自己的网站放在七牛上,当然只是一些静态的页面,但是对于一个初中生来说,能做出一个能访问的网站已经很高兴了,当然,那个网站是我自己用记事本一个一个打出来的代码.当时满满的自豪感. 经过了好几年,七牛已经迅速发展成国内数一数二的云存储服务商了.目前的七牛不知在云存储方面位居国内前列,在cdn加

七牛云存储优惠码及使用方法8折

现如今的互联网技术圈,随着存储技术的发展,越来越多的网站为了追求响应速度以及减轻服务器与带宽的负载压力,开始使用云存储技术,大部分网站的需求是存储静态文件或是CDN镜像加速,而这些使用者中有一大部分是使用的七牛云存储,目前七牛针对标准用户免费提供存储空间10GB,免费每月下载流量10GB,免费每月PUT/DELETE 10万次请求,免费每月GET 100万次请求. 如果你的流量比较大或者需要绑定自己的顶级域名(现在七牛绑定自己的域名需要用户充值额度不低于10元)的话,这里还有一个9折优惠码:8c

使用七牛云存储解决ios7.1的app部署问题

使用七牛云存储解决ios7.1的app部署问题 一.问题描述 开发完ios版本的app.需要将.ipa文件和.plist文件打包上传,供用户下载,在线安装.用户安装过程简单描述如下: 首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址.然后浏览器会自动跳转到这个地址,下载.读取.plist.(用户跳转的地址是.plist的下载地址.)这个过程,显然使用http协议来下载.plist文件.最后,iphone通过读取.plist文件中配置的.ipa下载地址,来安装.ipa文件,

Kindeditor上传图片到七牛云存储插件(PHP版)

由于工作需要,要使用第三方存储作为图床,发现七牛云挺不错,又可以免费使用10G的空间,决定先试试. 项目中使用的是Kindeditor作为网页编辑器的,七牛云的插件里没有现成的Kindeditor的插件,开始是想看着官方提供的手册,自己开发下,结果不知道是我太笨还是手册太高深,结果愣是没看懂,后来迫于工作进度,差点决定要放弃Kindeditor使用Ueditor,毕竟有现成的插件可用,不过迫于对Kindeditor的热衷,最后还是坚持下来了,尽管没找到Kindeditor上传到七牛云的太多资料,

第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件里的内容

package main import ( "html/template" "io" "io/ioutil" "log" "net/http" "os" "path" "runtime/debug" ) const ( ListDir      = 0x0001 UPLOAD_DIR   = "./uploads" TEMPLA