使用crazyfd/yii2-qiniu扩展上传图片到七牛云

一. 安装插件

在composer.json中增加一行

  "require": {
        ...
        "crazyfd/yii2-qiniu": "*"
    },

运行: composer update

二. 在七牛云设置图片样式

注册登录后,进入控制台,选择对象存储,新建空间,这里仅做测试 ,访问控制设置为公开.
七牛云对于上传的图片可以做裁剪,缩略等处理, 点击新建的空间名进入空间管理, 点击图片样式,
这里需要注意的地方是:
样式分隔符设置, 这里必须设置一个分隔符,不然后面就无法访问到对应的图片样式.
在这里插入图片描述
设置完样式分隔符后, 点击右侧新建图片样式,按照提示设置即可.

三. 后台代码中使用扩展

 	private function upload(){
        if($_FILES['Product']['error']['cover'] >0){
            return false;
        }
        // AK, SK 在个人中心,秘钥管理中可以查看
        $ak = "******************"; 
        $sk = "******************";
        //DOMAIN 是空间中指定的CDN测试域名,有效期30天,不支持https
        $domain  = "http://q5ksdf1zsdfo.bkt.clouddn.com";
        //BUCKET 是自己给空间取的名字
        $bucket = "crazyfox";
        $qiniu = new Qiniu($ak,$sk,$domain,$bucket);
        $key = uniqid();
        $qiniu->uploadFile($_FILES['Product']['tmp_name']['cover'],$key);
        $cover = $qiniu->getLink($key);
        $pics = [];
        foreach($_FILES['Product']['tmp_name']['pics'] as $k=>$file){
            if($_FILES['Product']['error']['pics'][$k] > 0){
                continue;
            }
            $key = uniqid();
            $qiniu->uploadFile($file,$key);
            $pics[$key] = $qiniu->getLink($key);
        }
        return ['cover'=>$cover,'pics'=>json_encode($pics,true)];
    }

四. 前台获取图片

获取具体的图片样式时, 在图片地址后加 “-图片样式名”.

  <?php foreach($model as $product): ?>
       <tr class="first">
          <td>
             <img src="<?php echo $product->cover; ?>-coversmall" class="img-circle avatar hidden-phone" />
            <a href="#" class="name"><?php echo $product->title; ?></a>
        </td>
      ...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章