项目集成七牛云存储sdk

以PHP为例

第一步:下载sdk

PHP SDK_SDK 下载_对象存储 - 七牛开发者中心

sdk下载成功之后,将sdk放入项目中,目录选择以自己项目实际情况而定。

注意:在examples目录中有各种上传文件的参考示例,这里我们主要参考的是下面两个

第二步:注册七牛账号

注册账号之后,进入控制台并创建存储桶,配置加速域名。

第三步:获取七牛密钥。

获取此处的ak  sk备用。

代码部分:

1:引入sdk

//七牛
require_once API_ROOT. '/public/qiniu/autoload.php'; //以自己实际项目路径为准
use Qiniu\Auth;
use Qiniu\Zone;
use Qiniu\Config;
use Qiniu\Storage\UploadManager;

2:构造上传方法 

function updateImg(){$rs = array('code' => 0 , 'msg' => '', 'info' => array());$accessKey="填写ak";$secretKey="填写sk";$bucket="填写存储桶名称";// 构建鉴权对象$auth = new Auth($accessKey, $secretKey);// 生成上传 Token$token = $auth->uploadToken($bucket);$filePath = $_FILES['file']['tmp_name'];$filename=$_FILES['file']['name'];$filename_arr = explode(".",$filename);//文件后缀$file_suffix=$filename_arr[1];//上传文件名称$key = date("YmdHis").rand(999,99999).".".$file_suffix;// 华东:z0,华北:z1,华南:z2,北美:na0,东南亚:as0switch ($configpri['qiniu_zone']) {case 'z0':$zone = Zone::zonez0();break;case 'z1':$zone = Zone::zonez1();break;case 'z2':$zone = Zone::zonez2();break;case 'na0':$zone = Zone::zonena0();break;case 'as0':$zone = Zone::zoneas0();break;default:$zone = Zone::zonez0();break;}// 指定 zone 上传		$config = new Config($zone);$uploadMgr = new UploadManager($config);list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);if ($err !== null) {$rs['code']=1001;$rs['msg']='头像上传失败';return $rs;}if (!empty($ret)) {$avatar=  $key;//以下可执行自己的代码}}

3:form表单上传图片测试

注意:此处form表单提交地址action要根据自己项目实际情况做修改

<form method="post" enctype="multipart/form-data" action="http://xxxxx.com/appapi/index.php?service=User.updateImg">图片:<input type="file" name="file" ><br /><input type="submit" value="提交"></form>

4:打印结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/144087.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何注册一个 DA 为 10 的高价值老域名

众所周知&#xff0c;由于域名存在唯一性&#xff0c;随着人们注册的越多&#xff0c;好域名也变得越来越少&#xff0c;渐渐成为稀缺的网络资源。这个时候要想拥有好的域名&#xff0c;抢注优质老域名就成了广大米友的路径之一。 优质的高价值域名都有一个特点&#xff0c;那…

MySQL数据库入门到精通1--基础篇(MySQL概述,SQL)

1. MySQL概述 1.1 数据库相关概念 目前主流的关系型数据库管理系统&#xff1a; Oracle&#xff1a;大型的收费数据库&#xff0c;Oracle公司产品&#xff0c;价格昂贵。 MySQL&#xff1a;开源免费的中小型数据库&#xff0c;后来Sun公司收购了MySQL&#xff0c;而Oracle又收…

如何快速学习AdsPower RPA(2)——中级、高级部分

Tool哥继续给大家分享快速学习AdsPower RPA的方法。上一篇在这里&#xff0c;还没看过的小伙伴赶快补课去&#xff1a;如何快速学习AdsPower RPA&#xff08;1&#xff09;——简单、进阶部分 能进入到中级、高级阶段的学习&#xff0c;说明你自学能力超强&#xff01;只要跟着…

创建型设计模式——工厂模式

摘要 本博文主要介绍软件设计模式中工厂模式&#xff0c;其中工厂设计模式的扩展为简单工厂(Simple Factory)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)三种。 一、简单工厂(Simple Factory) 主要分析设计模式 - 简单工厂(Simple Factory)&#xff0c;它把实例…

微信小程序,动态设置三级联动, 省市区街道

1.第一步 传parentId0 查询省份 2.第二步 选择省份,传pathId选择省份的pathId, 不传parentId,会查询出 市/县数据 3.第三步 根据选择县的parentId 查询街道数据,传parentId选择的县id 4.选择结果回显 显示所选择的 path 以/分割 取最后一级<van-dropdown-menu…

Pygame中监控鼠标动作的方法

在Pygame中监控键盘按键的方法_pygame获取键盘输入-CSDN博客中提到&#xff0c;通过在while True循环中获取队列中事件的方法监控键盘动作。监控鼠标动作的方法与监控键盘动作的方法相同。 相关连接1 队列与事件的相关知识&#xff0c;请参考 Pygame中监控键盘按键的方法_pyg…

【Servlet】Servlet API 详解

Servlet API 详解 一. HttpServlet1. 核心方法2. 代码示例: 处理 GET 请求3. 关于乱码问题4. 代码示例: 处理 POST 请求 二. HttpServletRequest1. 核心方法2. 代码示例: 打印请求信息3. 代码示例: 获取 GET 请求中的参数4. 代码示例: 获取 POST 请求中的参数(1)5. 代码示例: 获…

基于Java实现的仓库管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言功能介绍&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导…

【技巧】Ubuntu临时授予用户sudo权限,并在一定时间后自动撤销

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 目录 背景说明 开始操作 at指令 背景说明 有时候普通用户需要使用sudo来执行一些操作&#xff0c;作为服务器管理员&#xff0c;需要盯着该用户使用完后再给他撤销sudo权限。当用户多起来的时候&#xff0c;这…

Java基于 SpringBoot+Vue 的游戏分享网站

1 简介 基于Java SpringBoot 的游戏分享网站&#xff0c;本系统主要包括管理员和用户两个角色组成&#xff1b;主要包括首页、个人中心、用户管理、游戏类型管理、游戏文章管理、交流论坛、系统管理等功能的管理系统。 文章首发地址 2 技术栈 开发语言&#xff1a;Java 框…

网络安全--防火墙旁挂部署方式和高可靠性技术

目录 一、防火墙 二、防火墙旁挂部署方式 使用策略路由实现 第一步、IP地址配置 第二步、配置路由 第三步、在防火墙上做策略 第四步、在R2上使用策略路由引流 三、防火墙高可靠性技术--HRP 拓扑图 第一步、配置SW1、SW2、FW1、FW2 第二步、进入防火墙Web页面进行配…

AI在材料科学中的应用

7 AI在材料科学中的应用 在这一部分&#xff0c;我们将讨论AI技术在材料科学中的应用。首先&#xff0c;我们将介绍晶体材料的概述&#xff0c;并详细定义晶体材料的物理对称性&#xff0c;具体在第7.1节中讨论。接下来&#xff0c;我们将在第7.2节和第7.3节中讨论两个常见且基…

JavaScript数组分组

数组分组: 含义: 数据按照某个特性归类 1. reducefn(cur, index)作为对象的key,值为按照fn筛选出来的数据 // 利用reduce分组 function group(arr, fn) {// 不是数组if (!Array.isArray(arr)) {return arr}// 不是函数if (typeof fn ! function) {throw new TypeError(fn…

chatgpt,神经网络与拥塞控制

chatgpt 是一个巨大的带答案的完形填空题库&#xff0c;它可以回答几乎所有的文字类问题&#xff0c;不保证完全正确&#xff0c;但大致正确。它是怎么做到的&#xff1f; 它怎么知道我要问什么&#xff0c;如果它知道我要问什么&#xff0c;那么问题的不同表达形式它也一定知…

CentOS 7 安装 Docker 的详细步骤

文章目录 Docker简介1.更新2.安装必要的软件包3.添加Docker仓库4.安装5.安装后的一些常规设置及常用的命令5.1 启动 Docker5.2 Docker 在系统启动时自动运行5.3 运行一个 Hello World 镜像5.4 查看docker运行状态5.5 docker ps5.6 查看docker版本 6.安装种常见的错误错误1:yum-…

win10默认浏览器改不了怎么办,解决方法详解

win10默认浏览器改不了怎么办&#xff0c;解决方法详解_蓝天网络 在使用Windows 10操作系统时&#xff0c;你可能会遇到无法更改默认浏览器的情况。这可能是因为其他程序或设置正在干扰更改。如果你也遇到了这个问题&#xff0c;不要担心&#xff0c;本文将为你提供详细的解决…

Spring实例化源码解析之ComponentScanAnnotationParser(四)

上一章我们分析了ConfigurationClassParser&#xff0c;配置类的解析源码分析。在ComponentScans和ComponentScan注解修饰的候选配置类的解析过程中&#xff0c;我们需要深入的了解一下ComponentScanAnnotationParser的parse执行流程&#xff0c;SpringBoot启动类为什么这么写&…

多叉树+图实现简单业务流程

文章目录 场景整体架构流程业务界面技术细节小结 场景 这次遇到一个需求,大致就是任务组织成方案,方案组织成预案,预案可裁剪调整.预案关联事件等级配置,告警触发预案产生事件.然后任务执行是有先后的,也就是有流程概念. 整体架构流程 方案管理、预案管理构成任务流程的基础条…

如何用WiFi实现无线定位

一、WiFi主从模块设置 1. 实验器材 2. 实验步骤 ① 给控制板刷一套空的程序。 ② 将Esp8266模块连接到Bigfish扩展板上&#xff0c;并将扩展板插到控制板上。 ③ 在arduino的Seiral Monitor中&#xff0c;输入AT指令集&#xff0c;观察模块的相应应答。 3. 常用指令 ① 基础A…

华为智能企业远程办公安全解决方案(1)

华为智能企业远程办公安全解决方案&#xff08;1&#xff09; 课程地址方案背景需求分析企业远程办公业务概述企业远程办公安全风险分析企业远程办公环境搭建需求分析 方案设计组网架构设备选型方案亮点 课程地址 本方案相关课程资源已在华为O3社区发布&#xff0c;可按照以下…