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

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

1、注册七牛云
2、到 对象存储 新建一个存储空间,并记下 名称
ThinkPHP5使用七牛云上传图片(文件)与删除_第1张图片
3、到 个人中心->密钥管理获取密钥:AK/SK
ThinkPHP5使用七牛云上传图片(文件)与删除_第2张图片
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:

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()函数根据使用情况自行更改。
完!

你可能感兴趣的:(php,ThinkPHP5)