美文网首页
ThinkPHP6上传图片七牛云 如何上传文件到七牛云对象储存c

ThinkPHP6上传图片七牛云 如何上传文件到七牛云对象储存c

作者: 思议岁月 | 来源:发表于2019-12-28 13:54 被阅读0次

    ThinkPHP6如何上传图片七牛云,如何上传文件到七牛云对象储存cos,总所周知图片是特别消耗网站带宽的,个人网站将图片上传至七牛云才能显著提升网站的响应速度,手把手交大家如何上配置ThinkPHP6上传文件至七牛云.

    1. 准备工作
      确保你已经正确安装了composer包管理工具,本地ThinkPHP6.0的项目也已经成功搭建.
    2. 安装七牛云官方sdk包
      利用composer安装七牛云官方sdk包,大家可以参考七牛云官方sdk文章,按照文档步骤进行,首先在命令提示行打开项目根目录,我这里以自己的博客为例,然后执行composer require qiniu/php-sdk等待进度条走完,七牛云官方sdk包就安装完成啦~下图为演示命令:
      七牛云命令
      安装成功后我们就能在项目根目录看到七牛云的包,在vendor下可以看到七牛云的包,官方还为我们写好了案例,大家可以参考里面的写法~
      目录
      3.准备七牛云账号
      注册申请自己的七牛云账号并创建自己的存储空间,先去个人中心那到自己的秘钥~位置如下如图
      image.png
      个人空间大家可以创建自己的域名或者不手动创建,我这里已经创建好域名了~
      image.png
      4.修改tp6项目根目录下的.env文件,将我们的QINIU_ACCESS_KEYQINIU_SECRET_KEY保存起来.
    APP_DEBUG = true
    
    [APP]
    DEFAULT_TIMEZONE = Asia/Shanghai
    
    [DATABASE]
    TYPE = mysql
    HOSTNAME = 127.0.0.1
    DATABASE = blog
    USERNAME = root
    PASSWORD = root
    HOSTPORT = 3306
    CHARSET = utf8
    DEBUG = true
    
    [LANG]
    default_lang = zh-cn
    
    [QINIU]
    QINIU_ACCESS_KEY = xxxxxx改为你的
    QINIU_SECRET_KEY = xxxxxx改为你的
    QINIU_BUCKET = xxxxxx改为你的
    QINIU_DOMAIN = xxxxxx改为你的
    
    1. app\common下新建一个公共七牛云文件上传类
    <?php
    namespace app\common;
    use Qiniu\Auth;
    use Qiniu\Storage\UploadManager;
    use think\facade\Env;
    
    class Qiniu
    {
        public static function upload($filePath,$filename){
            $filename=str_replace('\\','/',$filename);//替换\斜杠
            // 需要填写你的 Access Key 和 Secret Key
            $accessKey=Env::get('qiniu.qiniu_access_key');
            $secretKey=Env::get('qiniu.qiniu_secret_key');
            $bucket=Env::get('qiniu.qiniu_bucket');
            $domain=Env::get('qiniu.qiniu_domain');
            // 构建鉴权对象
            $auth = new Auth($accessKey, $secretKey);
            // 生成上传 Token
            $token = $auth->uploadToken($bucket);
            // 初始化 UploadManager 对象并进行文件的上传。
            $uploadMgr = new UploadManager();
            // 调用 UploadManager 的 putFile 方法进行文件的上传。
            $res = $uploadMgr->putFile($token, $filename, $filePath);
            if($res[1]==null){ //上传成功
                return $domain.$filename;
            }else{//上传失败
                return '';
            }
        }
    }
    

    然后我们就可以使用$url=Qiniu::upload($filePath,$filename);传入文件的相对路径或绝对路径加上文件名,在文件上传成功后自动又将图片上传至七牛云~

    相关文章

      网友评论

          本文标题:ThinkPHP6上传图片七牛云 如何上传文件到七牛云对象储存c

          本文链接:https://www.haomeiwen.com/subject/exawnctx.html