当前位置: 首页 > news >正文

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框架)使用七牛云对象存储

图片文件存服务器非常占用存储带宽资源&#xff0c;且用户访问体验也不佳&#xff0c;因此使用一些第三方oss存储就很有必要了。之前lz发布了一篇tp使用阿里云oss的博文。不过阿里oss是收费的。而七牛云提供了一些免费使用额度。所以&#xff0c;这里额外补充一篇。 1.前提准备…...

八大排序算法之插入排序+希尔排序

目录 一.前言(总体简介) 关于插入排序 关于希尔排序: 二.插入排序 函数首部: 算法思路: 算法分析 插入排序代码实现: 插入排序算法的优化前奏: 三.希尔排序(缩小增量排序) 1.算法思想: 2.算法拆分解析 序列分组 分组预排序: 分组预排序的另一种实现方式: 希尔…...

蓝桥杯第十四届蓝桥杯模拟赛第三期考场应对攻略(C/C++)

这里把我的想法和思路写出来&#xff0c;恳请批评指正&#xff01; 目录 考前准备 试题1&#xff1a; 试题2&#xff1a; 试题3&#xff1a; 试题4&#xff1a; 试题5&#xff1a; 试题6&#xff1a; 试题7&#xff1a; 试题8&#xff1a; 试题9&#xff1a; 试题1…...

【数论】最大公约数、约数的个数与约数之和定理

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…...

第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&#xff1a; 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 文章目录IDEA&#xff1a; 如何导入项目模块 以及 将 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 什么是算法 目前普遍认可对算法的定义是&#xff1a;算法是解决…...

2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】

总分&#xff1a;5 一、试题A&#xff1a;ASC 得分&#xff1a;5分 本题总分&#xff1a;5 分 【问题描述】 已知大写字母 A 的 ASCII 码为 65&#xff0c;请问大写字母 L 的 ASCII 码是多少&#xff1f; 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提…...

透过等待看数据库

等待分类与解决基本流程步骤1.定位问题系统等待往往能直观的反映出系统问题。通过一些常见的等待类型&#xff0c;同样可以找到系统瓶颈&#xff0c;结合性能计数器往往定位更准确。如&#xff1a;系统中存在大量IO类等待&#xff0c;那么可能表示你的磁盘或内存是语句运行缓慢…...

中科亿海微FPGA

国产FPGA中&#xff0c;紫光、安路、高云称得上是三小龙&#xff0c;其他的半斤八两&#xff0c;中科亿海微也算是其中之一。 其产品为亿海神针系列&#xff0c;如下&#xff1a; 可见其最小规模也有9.2KLUT&#xff0c;最大竟有136K之多了&#xff0c;对比其他国产&#xff0…...

【链表OJ题(三)】链表中倒数第k个结点

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录链表OJ题(三)1. 链表…...

华为防火墙的学习

防火墙 - 含义和定义 什么是防火墙&#xff1f; 防火墙的工作原理 防火墙的区域&#xff1a; 包过滤防火墙----访问控制列表技术---三层技术 代理防火墙----中间人技术---应用层 状态防火墙---会话追踪技术---三层、四层 UTM---深度包检查技术----应用层 下一代防火墙 防火墙的…...

SPI 接口OLED 模块 - 兼容5V 和3.3V 电平

PCB 布局参考了老王0.8元128x32OLED显示屏转接板&#xff0c;开源项目地址&#xff1a;老王0.8元128x32OLED。 老王家买的屏幕放了快一年了&#xff0c;终于还是决定整个单独的模块&#xff0c;之前一直打算集成到开发板上的&#xff0c;不太灵活。相比那个转接板&#xff0c;主…...

css布局和定位

在Web开发中&#xff0c;CSS布局和定位是非常重要的技能。在这篇博客中&#xff0c;我们将深入探讨CSS布局和定位的概念、基本技术和最佳实践。 **CSS布局基础** ├── 盒模型 │ ├── 内边距 │ │ ├── padding │ │ ├── padding-top │ │ ├── p…...

python -- 批量读取多个文件,并将每个文件中相同变量累加

python – 批量读取多个文件&#xff0c;并将每个文件中相同变量累加 情况描述 现有多个nc文件&#xff0c;位于同一个文件夹中&#xff0c;如下所示每个文件中都有相同的变量&#xff0c;想要读取每个文件中的变量然后将其加起来意思就是说&#xff1a; 文件1中的变量文件2中…...

低代码开发流程是怎么样的?

低代码开发流程是怎么样的&#xff1f;现在很多文章都在下功夫宣传what&#xff08;低代码是什么&#xff09;、why&#xff08;为什么要用低代码&#xff09;&#xff0c;但是很少有文章能够系统讨论how&#xff08;怎么用低代码&#xff09;的问题。 所以我花3天的时间准备了…...

任何时候都不要在 for 循环中删除 List 集合元素!!!

首先说结论&#xff1a;无论什么场景&#xff0c;都不要对List使用for循环的同时&#xff0c;删除List集合元素&#xff0c;因为这么做就是不对的。 阿里开发手册也明确说明禁止使用foreach删除、增加List元素。 正确删除元素的方式是使用迭代器&#xff08;Iterator&#xff…...

koa+Vite+vue3+ts+pinia构建项目

一、 初始化构建项目 npm create vite myProject -- --template vue-ts 注&#xff1a;Vite 需要 Node.js 版本 14.18&#xff0c;16。然而&#xff0c;有些模板需要依赖更高的 Node 版本才能正常运行&#xff0c;当你的包管理器发出警告时&#xff0c;请注意升级你的 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红外测温:电炖锅智能测温的革新力量

在追求健康饮食与智能烹饪的时代&#xff0c;电炖锅的温控技术革新至关重要。领麦微W-TRS-5.5D7红外测温传感器的出现&#xff0c;为电炖锅带来非接触检测锅温与食物温度的新突破&#xff0c;结合智能菜谱功能&#xff0c;开启电炖锅智能烹饪新纪元。非接触检测锅温&#xff1a…...

如何在3分钟内为Axure RP配置中文界面:终极汉化指南

如何在3分钟内为Axure RP配置中文界面&#xff1a;终极汉化指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是…...

华为eNSP实战:三层交换机VLAN间通信配置避坑指南(附CE12800特殊命令)

华为eNSP三层交换机VLAN间通信实战&#xff1a;从基础配置到核心设备差异解析 在华为eNSP模拟器的学习过程中&#xff0c;三层交换机配置是网络工程师必须掌握的硬核技能。不同于传统二层交换&#xff0c;三层交换技术融合了路由与交换的优势&#xff0c;能够高效实现VLAN间通信…...

解锁毕业论文新姿势:书匠策AI,你的学术“超级外挂”!

在学术的征途上&#xff0c;毕业论文无疑是每位学子必须跨越的一道重要关卡。它不仅是对你大学四年学习成果的全面检验&#xff0c;更是你迈向学术殿堂或职场的重要敲门砖。然而&#xff0c;面对堆积如山的资料、错综复杂的逻辑结构&#xff0c;以及那令人头疼的格式要求&#…...

EcomGPT-中英文-7B电商模型与数据库课程设计:构建智能电商问答知识库

EcomGPT-中英文-7B电商模型与数据库课程设计&#xff1a;构建智能电商问答知识库 电商平台每天要处理海量的用户咨询&#xff1a;“这件衣服有M码吗&#xff1f;”、“这个手机和昨天看的那个有什么区别&#xff1f;”、“帮我推荐几款适合送长辈的茶叶”。传统客服要么忙不过…...

【板栗糖GIS】从KML到KMZ:GIS数据压缩、共享与ArcMap实战指南

1. KMZ与KML&#xff1a;GIS数据压缩与共享的黄金拍档 第一次接触KMZ文件时&#xff0c;我也被这个后缀名搞得一头雾水。直到有次野外测绘&#xff0c;队友发来一个带照片的谷歌地图范围文件&#xff0c;才真正体会到它的便利性。简单来说&#xff0c;KMZ就是KML的压缩版本&…...

全球协作的终极指南:Open Library多语言团队开发与维护的最佳实践

全球协作的终极指南&#xff1a;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 子矩形 计算矩阵的前缀和&#xff0c;然后遍历所有的子矩阵&#xff0c;看是否都是1也就是面积等于长乘以宽 都是1的矩阵&#xff0c;可以直接计算得到结果 Code class Solution { public:int numSubmat(vector<…...

HunyuanVideo-Foley开发者指南:API封装、批量生成与二次开发接口详解

HunyuanVideo-Foley开发者指南&#xff1a;API封装、批量生成与二次开发接口详解 1. 镜像概述与环境准备 1.1 核心功能与硬件要求 HunyuanVideo-Foley是一款集视频生成与AI音效生成于一体的专业工具&#xff0c;本镜像针对RTX 4090D 24GB显卡进行了深度优化。主要功能包括&a…...

Neeshck-Z-lmage_LYX_v2实战教程:异常友好提示机制与错误定位指南

Neeshck-Z-lmage_LYX_v2实战教程&#xff1a;异常友好提示机制与错误定位指南 1. 引言&#xff1a;当绘画工具变得“会说话” 想象一下&#xff0c;你兴致勃勃地打开一个AI绘画工具&#xff0c;输入了一段精心构思的描述&#xff0c;点击生成&#xff0c;然后……页面卡住了。…...