php七牛云文件上传

潘潘潘的博客 / 2023-05-05 / 原文

/*
    * 七牛云文件上传
    * $img_url      文件路径url
    * $qiniu_config 七牛云配置
    * @return array
    */
    public function qiniuUpload($save_path, $qiniu_config)
    {
        $secretKey = $qiniu_config['secret_key'];
        $accessKey = $qiniu_config['access_key'];
        $bucket = $qiniu_config['bucket'];
        $qiniudomain = $qiniu_config['domain'];
        $zone = 'z2'; // 华东:z0;华北z1;华南:z2;北美:na0;东南亚:as0
        if (!$secretKey || !$accessKey || !$bucket || !$qiniudomain) {
            throw new \think\Exception('配置不能为空');
        }

        $file_dir = 'article/'.date('Ymdhi').'/'; // 文件路径
        $file_type = pathinfo(parse_url($save_path)['path'])['extension']; // 文件类型(文件直接上传,七牛云不会指定文件类型,需要自己定义)
        $file_name = time() . uniqid().'.'.$file_type; // 文件名
        $file_dir_name = $file_dir.$file_name;

        // 文件上传
        $auth = new Auth($accessKey, $secretKey);
        $token = $auth->uploadToken($bucket);
        $key = $file_dir_name;
        $uploadMgr = new UploadManager();
        $result = $uploadMgr->putFile($token, $key, $save_path, null, 'application/octet-stream', true, null, 'v2');
     $data['img_yun_url'] = $qiniudomain.'/'.$result[0]['key'];
     return $data; 
}