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

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

需要记下的东西:

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. 几种常用的Java数据源解决方案

    http://blog.163.com/qqabc20082006@126/blog/static/22928525201041944847653/

  2. Spring静态属性注入

    今天遇到一个工具类,需要静态注入一个属性,方法如下: 第一步:属性的set和get方法不要加static package cn.com.chinalife.ebusiness.common.util; ...

  3. QT5-控件-QTimeEdit和QTime

    #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTimeEdit> #i ...

  4. 转自:http://blog.sina.com.cn/s/blog_86e874d30101e3d8.html(谢谢原文作者),Win7下安装CentOS 6.5双系统

    经过一下午的折腾,终于在64位的Windows 7上面成功安装了CentOS 6.5(64bit)系统,中途因为硬盘分区的问题失败了一次.下面是安装过程: 在安装过程中借助了这篇文章的内容:http: ...

  5. nginx location详解(三)

    location官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#location Syntax: location [ = | ...

  6. java学习笔记(11) —— Struts2与Spring的整合

    1.右键 项目名称 —— MyEclipse —— Add Spring Capabilities 2.选取 Copy checked Library contents to project fold ...

  7. 文成小盆友python-num17 - django基础

    一.首先了解web应用的本质 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 下面利用socket实现一个简单的web框架: #!/usr/b ...

  8. C/C++堆栈指引(转)

    C/C++堆栈指引 Binhua Liu 前言 我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中.我们知道,局部变量是存储在堆栈中的:debug时, ...

  9. console调试--转

    目录: 一.什么是 Console 二 .什么浏览器支持 Console 三.为什么不直接使用 alert 或自己写的 log 四.console.log(object[,object,.....]) ...

  10. c语言判断用户是否输入-非阻塞函数kbhit

    一.基础研究 要从地址读取数据,肯定是要定义一个指针变量p,用它来实现变换地址和取值的功能.另外程序是当两个条件中的某一个出现时才停止,所以应该用while~do循环语句循环输出n和d,并用while ...