一. 安装插件
在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>
...