ThinkPHP5使用七牛云上传图片(文件)与删除

七牛云好处:云存储,云加速,CDN镜像存储等等,自直观的说,就是把一些静态文件如:css、js、图片等存储到七牛云,然后通过一个分配的或者自己绑定的域名开启CDN加速去访问,这样既减少了自己的服务器压力,又也减少了宽带,非常适合个人,或者一些中小型企业网站使用。

1、注册七牛云
2、到 对象存储 新建一个存储空间,并记下 名称
在这里插入图片描述
3、到 个人中心->密钥管理获取密钥:AK/SK
在这里插入图片描述
4、下载七牛云的SDK
点此: 官方下载

或者直接使用Composer下载(推荐):

php composer.phar require qiniu/php-sdk

下载完成后将SDK包放到/vendor中并重命名为qiniu。

5、在application/extra中新建配置文件qiniui.php:

return  [
    'ak' => '获取的ak',
    'sk' => '获取的sk',
    'bucket' => '创建的存储空间名称',
    'image_url' => '分配给你的域名',
];

6、创建目录 /application/common/lib,用于存放后续的功能性文件。在此目录下创建Upload.php:

<?php
/**
 * User: Xunm
 * Date: 2018/10/6
 */

namespace app\common\lib\upqiniu;

// 引入七牛鉴权类
use Qiniu\Auth;
// 引入七牛上传类
use Qiniu\Storage\UploadManager;

class Upload
{
    /**
     * 上传图片
     * @return null|string
     */
    public static function image()
    {
        if(empty($_FILES['file']['tmp_name'])){
            explode('图片不合法',404);
        }

        // 要上传文件的临时文件
        $file = $_FILES['file']['tmp_name'];

        $pathinfo = pathinfo($_FILES['file']['name']);

        // 通过pathinfo函数获取图片后缀名
        $ext = $pathinfo['extension'];

        $conf = config('qiniu');

        // 构建鉴权对象
        $auth = new Auth($conf['ak'],$conf['sk']);

        // 生成上传需要的token
        $token = $auth->uploadToken($conf['bucket']);

        // 上传到七牛后保存的文件名
        $filename = date('Y').'/'.date('m').'/'.substr(md5($file),8,5).date('Ymd').rand(0,9999).'.'.$ext;


        // 初始化UploadManager类
        $uploadMgr = new UploadManager();
        list($res,$err) = $uploadMgr->putFile($token,$filename,$file);

        if($err !== null){
            return null;
        }else{
            return $filename;
        }
    }

    /**
     * 删除图片
     * @param $delFileName 要删除的图片文件,与七牛云空间存在的文件名称相同
     * @return bool
     */
    public static function delimage($delFileName)
    {
        // 判断是否是图片  目前测试,简单判断
        $isImage = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/', $delFileName);
        if(!$isImage){
            return false;
        }
        $conf = config('qiniu');

        // 构建鉴权对象
        $auth = new Auth($conf['ak'],$conf['sk']);

        // 配置
        $config = new \Qiniu\Config();

        // 管理资源
        $bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);

        // 删除文件操作
        $res = $bucketManager->delete($conf['bucket'], $delFileName);

        if (is_null($res)) {
            // 为null成功
            return true;
        }

        return false;

    }
}

delimage()函数根据使用情况自行更改。
完!

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值