首页 > Web开发 > 详细

yii2.0 集合七牛SDK 上传图片到第三方

时间:2019-12-14 00:23:06      阅读:94      评论:0      收藏:0      [点我收藏+]

首先,请用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 上传图片到第三方

原文:https://www.cnblogs.com/lijianming180/p/12037770.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!