利用七牛云私有空间存储文件

第一步,注册七牛云,创建空间,将空间设为私有

需要记下的东西:

AK,SK,bucket

第二步配置ThinkPHP

在config.php添加

'UPLOAD_SITEIMG_QINIU'=>array(
'maxSize'=>5*1024*1024,//文件大小
'rootPath'=>'./',
'saveName'=>array('uniqid',''),
'driver'=>'Qiniu',
'driverConfig'=>array(
'secrectKey'=>'<这里填七牛SK>',
'accessKey'=>'<这里填七牛AK>',
'domain'=>'<空间名称>.qiniudn.com',
'bucket'=>'<空间名称>',
)

  

复制代码

第三步,上传文件

控制器

$setting=C('UPLOAD_SITEIMG_QINIU');
$Upload=new\Think\Upload($setting);
$info=$Upload->upload($_FILES);

  

复制代码

上传文件后得到的$info是这样的

array(1){
["photo"]=>array(10){
["name"]=>
["type"]=>
["size"]=>
["key"]=>"
["ext"]=>
["sha1"]=>
["savename"]=>
["savepath"]=>
["url"]=>
}
}

  

复制代码

第四步,计算下载凭证

Common目录function.php添加方法

functionQiniu_Encode($str)//URLSafeBase64Encode
{
$find=array('+','/');
$replace=array('-','_');
returnstr_replace($find,$replace,base64_encode($str));
}
functionQiniu_Sign($url){//$info里面的url
$setting=C('UPLOAD_SITEIMG_QINIU');
$duetime=NOW_TIME+86400;//下载凭证有效时间
$DownloadUrl=$url.'?e='.$duetime;
$Sign=hash_hmac('sha1',$DownloadUrl,$setting["driverConfig"]["secrectKey"],true);
$EncodedSign=Qiniu_Encode($Sign);
$Token=$setting["driverConfig"]["accessKey"].':'.$EncodedSign;
$RealDownloadUrl=$DownloadUrl.'&token='.$Token;
return$RealDownloadUrl;
}

  

复制代码

$RealDownloadUrl为下载对应私有资源的可用URL

参考

http://document.thinkphp.cn/manual_3_2.html#upload

http://developer.qiniu.com/docs/v6/api/reference/security/download-token.html

thinkphp 中 使用七牛云上传的更多相关文章

  1. Laravel-admin 七牛云上传文件到七牛云出现卡顿失败情况

    由于所做项目需要管理后台众多,所以选择了Laravel-admin后台框架进行开发.节省了权限控制以及页面处理等问题的时间 Laravel-admin文档地址 http://laravel-admin ...

  2. 七牛云上传视频并截取第一帧为图片(js实现)

    本文出自APICloud官方论坛, 感谢论坛版主 东冥羽的分享. 七牛云上传视频并截取第一帧作为视频的封面图. 使用js上传,模块videoPlayer截取第一帧(有专门的截图模块,但是我使用的有点问 ...

  3. laravel中的文件上传到本地+七牛云上传

    首先在filesystems.php 配置好上传的文件的目录起名为upload 在Storage/目录下面 目录下面的app/upload 如果没有这个文件会自动创建 这里的名字upload名字是跟控 ...

  4. iOS 七牛云上传并获取图片----【客户端】

           最近做了七牛云存储的有关内容,涉及到与后台交互获取验证的token,无奈,后台自命清高,不与理会,没办法呀,于是自己搞呗.首先呢在在七牛上注册一个账号,然后呢添加一个存储空间这时候空间名 ...

  5. thinkphp3.2使用七牛云上传文件

    最近项目中用到了七牛云服务,来分享一下thinkphp使用七牛云来进行文件上传 1.首先在七牛云创建一个空间,例如空间名为test.获取secrectKey,accessKey 2.在thinkphp ...

  6. 七牛云-上传、删除文件,工具类(Day49)

    要求: 1. java1.8以上 2. Maven: 这里的version指定了一个版本范围,每次更新pom.xml的时候会尝试去下载7.5.x版本中的最新版本,你可以手动指定一个固定的版本. < ...

  7. iUploader 2.0 七牛云上传工具

    iUploader 软件介绍: iUploader主要功能将文件上传至七牛云,返回 Markdown 格式的链接到剪贴板 功能介绍: 图片本地压缩 图片右键上传 图片截取上传 图片复制上传 图片拖拽上 ...

  8. Go --- 七牛云 上传文件 & Token demo

    package main import ( "bytes" "crypto/hmac" "crypto/sha1" "encodi ...

  9. 七牛云上传视频(后端获取tolen)

    参照网址 https://developer.qiniu.com/kodo/sdk/1242/python #pip install qiniufrom qiniu import Auth #需要填写 ...

随机推荐

  1. mysql window下tmpdir空间耗尽

    修改my.ini或my-default.ini文件[mysqld]下方配置 tmpdir = D:/tmp

  2. Python正则表达式一

    推荐 http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html#!comments 这篇博客超好,建议收藏. 不过对于正则表达式小白,他没 ...

  3. 搭建Memcached + php 缓存系统

    服务器环境,Centos6.5 1.安装Memcached服务端 Yum -y install memcached 2.配置Memcached服务端用户以及自动启动服务等 将服务配置成自启动 chkc ...

  4. Ubuntu 12.04更换显示器后显示“显示不支援”,只能进恢复模式工作

    以前用的一台14寸液晶,换成17寸后,进入系统显示器上“显示不支援”  .仔细观查,电脑硬盘自检能显示后,后面都是黑屏. 解决过程. 因为grub 启动菜单不能显示.盲按方向键,发现菜单里的其它项目可 ...

  5. 实现单实例多线程安全API问题

    前阵子写静态lib导出单实例多线程安全API时,出现了CRITICAL_SECTION初始化太晚的问题,之后查看了错误的资料,引导向了错误的理解,以至于今天凌晨看到另一份代码,也不多想的以为singl ...

  6. 使用django+mysql+scrapy制作的一个小说网站

    小说网站用的程序都是千篇一律的,jieqi + guanguang,无聊时间学习python+django,也做了一个小说网站,下面说一说做这个网站一些过程, 制作这种采集站,最要紧的是要有一个好的采 ...

  7. [JS]_proto_和prototype到底有啥区别

    是时候拿出我珍藏多年的这张图了: 首先,要明确几个点: 1.在JS里,万物皆对象.方法(Function)是对象,方法的原型(Function.prototype)是对象.因此,它们都会具有对象共有的 ...

  8. PHP 之isset() 与 unset()

    isset()用来判断某个变量是否已经被声明,他返回一个boolean类型的值,如果声明则返回true否则返回false.如果变量被声明后,给他赋值为NULL,他也返回false. 如: <?p ...

  9. delphi线程的创建、挂起、激活与终止(用绘图做实验,简单又好用)

    unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  10. LINK : fatal error LNK1000: Internal error during IncrBuildImage

    一.下微软的补丁:KB948127补丁来解决,http://code.msdn.microsoft.com/KB948127.貌似安装了也不起作用二.如果下载的补丁没安装成功或下载失败,可以用下面的方 ...