php(tp框架)使用七牛云对象存储
图片文件存服务器非常占用存储带宽资源,且用户访问体验也不佳,因此使用一些第三方oss存储就很有必要了。之前lz发布了一篇tp使用阿里云oss的博文。不过阿里oss是收费的。而七牛云提供了一些免费使用额度。所以,这里额外补充一篇。
1.前提准备
先去七牛云官网注册自己的账号,并申请好对象存储资源。创建一个空间。并绑定一个自定义源站域名。这里lz的空间名:liuqingwushui 源文件绑定域名为:liuqiniu.flchy.com
最后记得去个人中心密钥管理把 AK,SK秘钥复制下来,后面会用得上。


2.tp框架引入SDK
这里lz使用的tp框架是thinkphp5.0.24。结构目录大体如下。先去七牛云官网下载php sdk(PHP SDK_SDK 下载_对象存储 - 七牛开发者中心)。并将下载的sdk重命令为qiniu,把文件复制到vendor目录下。最终目录结构如下:
tips:这里注意一下下载的php sdk版本和php版本要对应,如果是很久之前的sdk版本。你在php7.4以上环境下运行,上传文件会报错:Trying to access array offset 。所以建议下载最新的sdk版本。


引入sdk之后,直接在代码中调用即可。这里调用的核心Controller文件代码:
Imgupload.php
<?php
namespace app\qiniu\controller;
use think\Controller;
use think\Db; //数据库连接类Db
require_once '../vendor/qiniu/autoload.php';
use \Qiniu\Auth;
use \Qiniu\Storage\UploadManager;class Imgupload extends Controller{public function index(){$loginstatus = true; //可以调用方法来判断是否登录if($loginstatus){// 用于签名的公钥和私钥$accessKey = '你的ak';$secretKey = '你的sk';// 初始化签权对象$auth = new Auth($accessKey, $secretKey);// 空间名 https://developer.qiniu.io/kodo/manual/concepts$bucket = 'liuqingwushui';// 生成上传Token$token = $auth->uploadToken($bucket);// 构建 UploadManager 对象$uploadMgr = new UploadManager();// 上传文件到七牛$filePath = request()->file('file');$file=$filePath->getInfo()['tmp_name'];$key =$filePath->getInfo()['name']; //文件名list($ret, $err) = $uploadMgr->putFile($token, $key, $file);if ($err !== null) {$array=array('code'=>'1','msg'=>"上传失败",'data'=>[]);} else {$array=array('code'=>'0','msg'=>"上传成功",'data'=>$ret);}echo json_encode($array);}}}
调用该接口,传入文件表单参数file,上传成功后会返回如下结果:

该图片在七牛云的访问地址即:hots+key。这里的host就是前面提到的源文件绑定域名。
相关文章:
php(tp框架)使用七牛云对象存储
图片文件存服务器非常占用存储带宽资源,且用户访问体验也不佳,因此使用一些第三方oss存储就很有必要了。之前lz发布了一篇tp使用阿里云oss的博文。不过阿里oss是收费的。而七牛云提供了一些免费使用额度。所以,这里额外补充一篇。 1.前提准备…...
八大排序算法之插入排序+希尔排序
目录 一.前言(总体简介) 关于插入排序 关于希尔排序: 二.插入排序 函数首部: 算法思路: 算法分析 插入排序代码实现: 插入排序算法的优化前奏: 三.希尔排序(缩小增量排序) 1.算法思想: 2.算法拆分解析 序列分组 分组预排序: 分组预排序的另一种实现方式: 希尔…...
蓝桥杯第十四届蓝桥杯模拟赛第三期考场应对攻略(C/C++)
这里把我的想法和思路写出来,恳请批评指正! 目录 考前准备 试题1: 试题2: 试题3: 试题4: 试题5: 试题6: 试题7: 试题8: 试题9: 试题1…...
【数论】最大公约数、约数的个数与约数之和定理
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
第28篇:Java日期Calendar类总结(二)
目录 1、获取系统当前时间 2、获取指定日期 3、对象字段类型 4 、对象信息设置 4.1 Set设置...
【Python】字符串 - 集大成篇
目录 1. 不同语言的字符串比较 1.1 C 语言 1.2 C 语言 1.2.1 C 风格字符串 1.2.2 C 风格字符串 1.3 JAVA 1.4 Python 2. Python 字符串 2.1 方法 2.2.1 title () 2.2.2 lower () 2.2.3 upper () 2.2.4 rstrip () 2.2.5 lstrip …...
IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤
IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 文章目录IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤IDEA 导入项目模块 Module一. 创建一个空项目二. 导入 Module三. 将 Module 与 当前项目关联上IDEA 将 Java程序打包成…...
算法的效率——时间复杂度和空间复杂度
文章目录1. 算法效率1.1 什么是算法1.2 算法的好坏2. 时间复杂度2.1 什么是时间复杂度2.2 时间复杂度的计算方法2.3 大O的渐进表示法2.4 常见时间复杂度计算举例3. 空间复杂度4. 常见复杂度对比1. 算法效率 1.1 什么是算法 目前普遍认可对算法的定义是:算法是解决…...
2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
总分:5 一、试题A:ASC 得分:5分 本题总分:5 分 【问题描述】 已知大写字母 A 的 ASCII 码为 65,请问大写字母 L 的 ASCII 码是多少? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...
透过等待看数据库
等待分类与解决基本流程步骤1.定位问题系统等待往往能直观的反映出系统问题。通过一些常见的等待类型,同样可以找到系统瓶颈,结合性能计数器往往定位更准确。如:系统中存在大量IO类等待,那么可能表示你的磁盘或内存是语句运行缓慢…...
中科亿海微FPGA
国产FPGA中,紫光、安路、高云称得上是三小龙,其他的半斤八两,中科亿海微也算是其中之一。 其产品为亿海神针系列,如下: 可见其最小规模也有9.2KLUT,最大竟有136K之多了,对比其他国产࿰…...
【链表OJ题(三)】链表中倒数第k个结点
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(三)1. 链表…...
华为防火墙的学习
防火墙 - 含义和定义 什么是防火墙? 防火墙的工作原理 防火墙的区域: 包过滤防火墙----访问控制列表技术---三层技术 代理防火墙----中间人技术---应用层 状态防火墙---会话追踪技术---三层、四层 UTM---深度包检查技术----应用层 下一代防火墙 防火墙的…...
SPI 接口OLED 模块 - 兼容5V 和3.3V 电平
PCB 布局参考了老王0.8元128x32OLED显示屏转接板,开源项目地址:老王0.8元128x32OLED。 老王家买的屏幕放了快一年了,终于还是决定整个单独的模块,之前一直打算集成到开发板上的,不太灵活。相比那个转接板,主…...
css布局和定位
在Web开发中,CSS布局和定位是非常重要的技能。在这篇博客中,我们将深入探讨CSS布局和定位的概念、基本技术和最佳实践。 **CSS布局基础** ├── 盒模型 │ ├── 内边距 │ │ ├── padding │ │ ├── padding-top │ │ ├── p…...
python -- 批量读取多个文件,并将每个文件中相同变量累加
python – 批量读取多个文件,并将每个文件中相同变量累加 情况描述 现有多个nc文件,位于同一个文件夹中,如下所示每个文件中都有相同的变量,想要读取每个文件中的变量然后将其加起来意思就是说: 文件1中的变量文件2中…...
低代码开发流程是怎么样的?
低代码开发流程是怎么样的?现在很多文章都在下功夫宣传what(低代码是什么)、why(为什么要用低代码),但是很少有文章能够系统讨论how(怎么用低代码)的问题。 所以我花3天的时间准备了…...
任何时候都不要在 for 循环中删除 List 集合元素!!!
首先说结论:无论什么场景,都不要对List使用for循环的同时,删除List集合元素,因为这么做就是不对的。 阿里开发手册也明确说明禁止使用foreach删除、增加List元素。 正确删除元素的方式是使用迭代器(Iteratorÿ…...
koa+Vite+vue3+ts+pinia构建项目
一、 初始化构建项目 npm create vite myProject -- --template vue-ts 注:Vite 需要 Node.js 版本 14.18,16。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版…...
k8s-yaml文件
文章目录一、K8S支持的文件格式1、yaml和json的主要区别2、YAML语言格式二、YAML1、查看 API 资源版本标签2、编写资源配置清单2.1 编写 nginx-test.yaml 资源配置清单2.2 创建资源对象2.3 查看创建的pod资源3、创建service服务对外提供访问并测试3.1 编写nginx-svc-test.yaml文…...
W-TRS-5.5D7红外测温:电炖锅智能测温的革新力量
在追求健康饮食与智能烹饪的时代,电炖锅的温控技术革新至关重要。领麦微W-TRS-5.5D7红外测温传感器的出现,为电炖锅带来非接触检测锅温与食物温度的新突破,结合智能菜谱功能,开启电炖锅智能烹饪新纪元。非接触检测锅温:…...
如何在3分钟内为Axure RP配置中文界面:终极汉化指南
如何在3分钟内为Axure RP配置中文界面:终极汉化指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是…...
华为eNSP实战:三层交换机VLAN间通信配置避坑指南(附CE12800特殊命令)
华为eNSP三层交换机VLAN间通信实战:从基础配置到核心设备差异解析 在华为eNSP模拟器的学习过程中,三层交换机配置是网络工程师必须掌握的硬核技能。不同于传统二层交换,三层交换技术融合了路由与交换的优势,能够高效实现VLAN间通信…...
解锁毕业论文新姿势:书匠策AI,你的学术“超级外挂”!
在学术的征途上,毕业论文无疑是每位学子必须跨越的一道重要关卡。它不仅是对你大学四年学习成果的全面检验,更是你迈向学术殿堂或职场的重要敲门砖。然而,面对堆积如山的资料、错综复杂的逻辑结构,以及那令人头疼的格式要求&#…...
EcomGPT-中英文-7B电商模型与数据库课程设计:构建智能电商问答知识库
EcomGPT-中英文-7B电商模型与数据库课程设计:构建智能电商问答知识库 电商平台每天要处理海量的用户咨询:“这件衣服有M码吗?”、“这个手机和昨天看的那个有什么区别?”、“帮我推荐几款适合送长辈的茶叶”。传统客服要么忙不过…...
【板栗糖GIS】从KML到KMZ:GIS数据压缩、共享与ArcMap实战指南
1. KMZ与KML:GIS数据压缩与共享的黄金拍档 第一次接触KMZ文件时,我也被这个后缀名搞得一头雾水。直到有次野外测绘,队友发来一个带照片的谷歌地图范围文件,才真正体会到它的便利性。简单来说,KMZ就是KML的压缩版本&…...
全球协作的终极指南:Open Library多语言团队开发与维护的最佳实践
全球协作的终极指南:Open Library多语言团队开发与维护的最佳实践 【免费下载链接】openlibrary One webpage for every book ever published! 项目地址: https://gitcode.com/gh_mirrors/op/openlibrary Open Library是一个致力于为每一本已出版书籍创建网页…...
leetcode 1504. Count Submatrices With All Ones 统计全 1 子矩形
Problem: 1504. Count Submatrices With All Ones 统计全 1 子矩形 计算矩阵的前缀和,然后遍历所有的子矩阵,看是否都是1也就是面积等于长乘以宽 都是1的矩阵,可以直接计算得到结果 Code class Solution { public:int numSubmat(vector<…...
HunyuanVideo-Foley开发者指南:API封装、批量生成与二次开发接口详解
HunyuanVideo-Foley开发者指南:API封装、批量生成与二次开发接口详解 1. 镜像概述与环境准备 1.1 核心功能与硬件要求 HunyuanVideo-Foley是一款集视频生成与AI音效生成于一体的专业工具,本镜像针对RTX 4090D 24GB显卡进行了深度优化。主要功能包括&a…...
Neeshck-Z-lmage_LYX_v2实战教程:异常友好提示机制与错误定位指南
Neeshck-Z-lmage_LYX_v2实战教程:异常友好提示机制与错误定位指南 1. 引言:当绘画工具变得“会说话” 想象一下,你兴致勃勃地打开一个AI绘画工具,输入了一段精心构思的描述,点击生成,然后……页面卡住了。…...
