thinkphp 中 使用七牛云上传(来自thinkphp官网)

2023-11-05

利用七牛云私有空间存储文件
第一步,注册七牛云,创建空间,将空间设为私有
需要记下的东西:
AK,SK,bucket
第二步配置ThinkPHP
在config.php添加
  1. 'UPLOAD_SITEIMG_QINIU' => array ( 
  2.                 'maxSize' => 5 * 1024 * 1024,//文件大小
  3.                 'rootPath' => './',
  4.                 'saveName' => array ('uniqid', ''),
  5.                 'driver' => 'Qiniu',
  6.                 'driverConfig' => array (
  7.                         'secrectKey' => '<这里填七牛SK>', 
  8.                         'accessKey' => '<这里填七牛AK>',
  9.                         'domain' => '<空间名称>.qiniudn.com',
  10.                         'bucket' => '<空间名称>', 
  11.             )
复制代码
第三步,上传文件
控制器
  1. $setting=C('UPLOAD_SITEIMG_QINIU');
  2. $Upload = new \Think\Upload($setting);
  3. $info = $Upload->upload($_FILES);
复制代码
上传文件后得到的$info是这样的
  1.  array(1) {
  2.   ["photo"] => array(10) {
  3.     ["name"] =>
  4.     ["type"] =>
  5.     ["size"] =>
  6.     ["key"] =>"
  7.     ["ext"] =>
  8.     ["sha1"] => 
  9.     ["savename"] => 
  10.     ["savepath"] => 
  11.     ["url"] => 
  12.   }
  13. }
复制代码
第四步,计算下载凭证
Common目录function.php添加方法
  1. function Qiniu_Encode($str) // URLSafeBase64Encode
  2. {
  3.     $find = array('+', '/');
  4.     $replace = array('-', '_');
  5.     return str_replace($find, $replace, base64_encode($str));
  6. }
  7. function Qiniu_Sign($url) {//$info里面的url
  8.     $setting = C ( 'UPLOAD_SITEIMG_QINIU' );
  9.     $duetime = NOW_TIME + 86400;//下载凭证有效时间
  10.     $DownloadUrl = $url . '?e=' . $duetime;
  11.     $Sign = hash_hmac ( 'sha1', $DownloadUrl, $setting ["driverConfig"] ["secrectKey"], true );
  12.     $EncodedSign = Qiniu_Encode ( $Sign );
  13.     $Token = $setting ["driverConfig"] ["accessKey"] . ':' . $EncodedSign;
  14.     $RealDownloadUrl = $DownloadUrl . '&token=' . $Token;
  15.     return $RealDownloadUrl;
  16. }
复制代码
$RealDownloadUrl为下载对应私有资源的可用URL
参考
http://document.thinkphp.cn/manual_3_2.html#upload
http://developer.qiniu.com/docs/v6/api/reference/security/download-token.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

thinkphp 中 使用七牛云上传(来自thinkphp官网) 的相关文章

随机推荐

  • 各种通信接口的简单对比

    对比表 同步方式与异步方式的主要区别在于 是否传输时钟信号 只要是通訊前雙方需要設定相同波特率的 都是異步傳輸方式 异步传输 Asynchronous Transmission 每次异步传输的信息都以一个起始位开头 它通知接收方数据已经到达
  • 微服务之间调用的异常应该如何处理

    前言 在分布式服务的场景下 业务服务都将进行拆分 不同服务之间都会相互调用 如何做好异常处理是比较关键的 可以让业务人员在页面使用系统报错后 很清楚的看到服务报错的原因 而不是返回代码级别的异常报错 比如NullException Ille
  • datetime 模块详解 -- 基本的日期和时间类型

    转自 https www cnblogs com fclbky articles 4098204 html datetime 模块提供了各种类用于操作日期和时间 该模块侧重于高效率的格式化输出在 Python 中 与时间处理有关的模块包括
  • 6-11 删除字符 (20 分)

    本题要求实现一个删除字符串中的指定字符的简单函数 函数接口定义 void delchar char str char c 其中char str是传入的字符串 c是待删除的字符 函数delchar的功能是将字符串str中出现的所有c字符删除
  • Nginx+FastCGI参数传递

    如果需要将需要将各种参数传递到fcgi 例如传递请求参数 请求方法等到fcgi 需要在nginx中加配置 location fcgi fastcgi pass ip port fastcgi param QUERY STRING query
  • 汉诺塔的相关应用

    汉诺塔的应用 是递归的一种比较例子 题目藐视见下面 就是一个递归的实现 先把a上的n 1个盘同过c移到b 再把a上的最后一只盘移到c 随后再把b上的n 1只盘通过a 移到c 描述就是这样 include
  • 两个接口和一个类的适配器模式

    适配器类实现其中一个接口方法 创建另一个接口的对象和构造方法 在接口方法中调用另一个接口的方法 实例如下 public class shipeiqi public static void main String args ATable aT
  • 基于神经网络的目标检测论文之DenseNet:密集连接的卷积神经网络

    第三章 基于密集连接卷积网络改进的目标分类算法 最近的研究表明 如果卷积网络包含接近输入的层和接近输出的层之间的较短连接 则卷积网络可以更深入 更精确和更有效地进行训练 在本章中 论文首先研究密集卷积网络 DenseNet 的结构和工作原理
  • USB转RS485串口电路设计

    USB转串口芯片的串口信号一般为 TTL CMOS电平 在实现半双工 RS485 串口时需要外接485电平转换芯片 设计中需要有信号来控制 485 转接芯片的发送和接收使能端 建议选择自带485控制引脚的转接芯片 如 CH340 CH342
  • MybatisPlus中removeById删除数据库未变

    removeById Serializable id 传入的是id Integer Long等 不是实体对象 就是对应你表的主键 由于我刚开始建表时未设置主键mybatisplus自动生成未在实体类表中标注主键 后加了主键 所以需在实体类主
  • 各种遥感数据,地理信息数据共享网站

    各种遥感数据 地理信息数据共享网站 至少一百 Online Global Satellite Image and Atlas http library gmu edu resources sci Geog579 htm 可以下载Aster
  • Java开发中的23种设计模式详解

    设计模式 Design Patterns 可复用面向对象软件的基础 设计模式 Design pattern 是一套被反复使用 多数人知晓的 经过分类编目的 代码设计经验的总结 使用设计模式是为了可重用代码 让代码更容易被他人理解 保证代码可
  • word怎么让封面、目录没有页码,页码从正文开始

    word怎么让封面 目录没有页码 页码从正文开始 1 开始插入页码 从第一页开始 如图 二 如果前两页是封面和目录 再从第一页开始就不合适了 解决步骤如下 1 在第三页的文字前面添加分页符 效果如图 2 选中第三页的页码 跳到设置页眉页脚的
  • Windows powershell增设快捷指令(Git版)

    1 创建并修改Windows Powershell 启动执行文件 echo PROFILE 输出的是powershell的执行文件路径 2 切换到WindowPowerShell路径下 创建文件 Microsoft PowerShell p
  • MySQL 数据类型

    目录 数据类型 数据类型分类 数值类型 bit类型 小数类型 float decimal 字符串类型 char varchar char和varchar比较 日期和时间类型 enum和set 集合查询使用find in set函数 afte
  • 【学习总结】EasyExcel合并同列不同行,表格数据相同的行

    实体类 Data HeadRowHeight 50 ContentStyle horizontalAlignment HorizontalAlignmentEnum CENTER verticalAlignment VerticalAlig
  • zookeeper 入门(一)单机zk

    topic 1 单机zk搭建 连接zk服务创建节点 以下简称zookeeper 为zk 我的操作环境 mac os jdk8 zookeeper 3 4 12 1 下载zk到本地 解压 tar zxvf zookeeper 3 4 12 t
  • [html]js无缝循环滚动图片示例代码

    html代码 div ul li a href YunNan html img src 微信图片 20200621003327 jpg 1 a li li a href Switzerland html img src 微信图片 20200
  • muduo源码分析2——Singleton分析

    1 一般singleton写法 单例模式即要求只有在第一次调用的时候创建该对象 主要分为以下两条路 返回指针还是引用 返回引用可以防止使用中delete instance导致对象被提前销毁 private包含static指针以及构造函数 p
  • thinkphp 中 使用七牛云上传(来自thinkphp官网)

    利用七牛云私有空间存储文件 第一步 注册七牛云 创建空间 将空间设为私有 需要记下的东西 AK SK bucket 第二步配置ThinkPHP 在config php添加 UPLOAD SITEIMG QINIU gt array maxS