首先,请用composer下载七牛phpSDK (具体参考官方文档)

composer require qiniu/php-sdk

注册七牛账号 获取 AK SK(密匙) ,创建资源对象 获取domain(访问域名) bucket(你创建的资源对象名称)

models层定义AK SK domain bucket等常量 方便日后使用(因人而异)

const AK = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const SK = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const DOMAIN = 'xxxxxxx.com';
const BUCKET = 'xxxxxxxxxxx';

controller中加载七牛类

use crazyfdqiniuQiniu;

实例化七牛对象执行上传

//实例化七牛对象
$qiniu = new Qiniu(Product::AK,Product::SK,Product::DOMAIN,Product::BUCKET); //生成key(图片标志)
$key = uniqid(); //执行上传
$qiniu->uploadFile($_FILES['Product']['tmp_name']['cover'],$key); //获取存储地址
$cover = $qiniu->getLink($key); ------后面就是把路径存到数据库即可

多图片上传同理foreach即可

foreach($_FILES['Product 大专栏  yii2.0 集合七牛SDK 上传图片到第三方']['tmp_name']['pics'] as $k  => $file){
if($_FILES['Product']['error']['pics'][$k]>0){
continue;
}
$key = uniqid();
$qiniu->uploadFile($file,$key);
//(保存key为下标 方便后面删除)
$pics[$key] = $qiniu->getLink($key);
}

多图片集合返回json格式

值得一提的是七牛可以设置多图片样式,比如我就将图片设置成3种,product_small,product_big,product_mid;

view视图输出

----
七牛存储的图片删除 $productid = yii::$app->request->get('productid');
$product_del = Product::find()->where('productid=:pid',[':pid'=>$productid])->one();
//获取链接中文件名
$key = basename($product_del->cover);
//七牛
$qiniu = new Qiniu(Product::AK,Product::SK,Product::DOMAIN,Product::BUCKET); $qiniu->delete($key);
//删除多图片(因为保存时将文件名保存为下标值可直接删除)
$pics = json_decode($product_del->pics,true);
foreach ($pics as $key => $value) {
$qiniu->delete($key);
}

yii2.0 集合七牛SDK 上传图片到第三方的更多相关文章

  1. discuz接入七牛sdk

    自己摸索了几天,找群里面的人各种问,都没有一个人回答我,哎,国内的开源精神呢...... 需要修改有以下几个: 1.替换 /source/class/class_core.php 文件   解释:就 ...

  2. yii2上传七牛图片(超详细)

    前期准备 1.在七牛注册账号https://portal.qiniu.com/signup/choice 2.创建空间https://portal.qiniu.com/bucket(记住存储空间名称和 ...

  3. QiniuUpload- 一个方便用七牛做图床然后插入markdown的小工具

    最近一段时间有用markdown做笔记,其他都好,但是markdown插入图片挺麻烦的,特别是想截图之后直接插入的时候.需要首先把图片保存了,然后还要上传到一个地方生成链接才能插入.如果有个工具可以直 ...

  4. .NET Core版本七牛云SDK使用

    一.问题背景 公司目前正在将一部分的业务从.NET平台准备迁移到.NET Core上去,同时也准备启用docker进行.NET Core的部署,在项目迁移过程中,不可避免的碰到有些SDK只有在.NET ...

  5. 七牛 OCR 接口调试 & 七牛鉴权 Token 应用

    接口规约 PHP 实现 核心代码 执行结果 源代码 Java 实现 核心代码 执行结果 源代码 [现学现卖]图片内容审核接口 Python 实现 核心代码 执行结果 源代码 Go 实现 核心代码 执行 ...

  6. Yii2.0 下使用 composer 安装七牛

    最近在捣鼓一个网站,要上传图片,于是选择了七牛.由于Yii2.0框架本身并不具有七牛用来上传图片的接口,只能自己动手给Yii2.0框架安装七牛了. 首先在根目录下的 composer.json 进行配 ...

  7. 使用微信 SDK 上传图片到七牛

    总体思路是:在微信下选好图片后将图片上传到微信服务器,在后端使用微信服务器返回的图片 serverId 加上调用接口的 ApiTicket 通过七牛的 fetch 接口向微信服务器下载多媒体文件的接口 ...

  8. ***七牛跨域上传图片JS SDK

    SDK: http://developer.qiniu.com/code/v6/sdk/javascript.html#upload 上传 在页面中引入 plupload,plupload.full. ...

  9. node+express上传图片到七牛

    本人微信公众号:前端修炼之路,欢迎关注 最近做项目的时候有一个上传图片的需求,由于没有后端的配合,所以决定自己来搭个服务器,实现上传图片功能.以后如果需要修改成java或者php为后端,直接使用即可, ...

随机推荐

  1. 新手学习Web前端的三个高效学习方法,基础要重视

    作为新手,出于对风险的担心,不免在学习一项新技能或者转投一个新行业的时候,有所犹豫与徘徊.毕竟,在这场类似冒险的选择中,我们需要投入时间.精力以及承受相关的经济损失.但是,只有勇敢迈出第一步,才能为生 ...

  2. c#学习笔记04——ADO.NET

    ADO.NET结构:ADO.NET建立在几个核心类之上,这些类可以分为两组 包含和管理数据的类:DataSet DataTable DataRow DataRelation... 链接数据源的类:Co ...

  3. latex学习笔记----数学公式

    https://www.jianshu.com/p/d7c4cf8dc62d 1.数学公式在  \(  和  \)之间,$和$之间,或者\begin{math}和\end{math}之间 2.对于较大 ...

  4. ZJNU 1699 - Bits

    可得应当优先寻找最大的2^n-1这个数 如果l的位数不等于r的位数,那么这个数 2^n-1 就是最优解(每一位全为1) 如果l和r的位数相同,先看r是否符合 2^n-1,符合直接返回,不符合的话拆除最 ...

  5. 三、NOSQL之Memcached缓存服务实战精讲第二部

    1.Memcached服务安装 Memcached的安装比较简单,很多平台都是支持Memcached,常见的有:Linux .Windows 服务端端:                cd /home ...

  6. 第二个--关于led灯的代码总结

    又要继续奋斗啦,不然就交白卷了: 1---自己注意,就是那个板子上有8个led灯,这个灯呢,没哟甩端口直接控制模式用573锁存器来控制的,为的是啥呢,因为你的芯片就那么几个引脚  ,你就单单把引脚拿来 ...

  7. Spring Boot原理

    Spring 钩子之BeanFactoryPostProcessor和BeanPostProcessor的源码学习 https://www.jianshu.com/p/a90a3e617ba6 spr ...

  8. Spring Test+JUnit4整合使用测试ZZJ_淘淘商城项目:day01(RESTful Web Service)

    针对整合的Dao层与Service层,在做spring与通用Mapper和分页插件相关测试时比较麻烦.如果只用JUnit测试,需要每次Test方法里初始化一下applicationContext,效率 ...

  9. C# 创建、部署和调用WebService的简单示例 (转)

    C# 创建.部署和调用WebService的简单示例(转)  转自 https://www.cnblogs.com/Brambling/p/7266482.html  webservice 可以用于分 ...

  10. java.lang.IllegalArgumentException: Cannot format given Object as a Date

    在进行日期转换的时候遇到了这个问题, 非常的恼火 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" ...