ThinkPHP5.0上传图片到阿里云OSS

1.首先登录阿里云OSS管理控制台新建一个Bucket存储桶:

ThinkPHP5.0上传图片到阿里云OSS_第1张图片

(注意下面的EndPoint,即外网访问节点,后面的配置项有用到) 

ThinkPHP5.0上传图片到阿里云OSS_第2张图片

为了区分不同类型的图片,可以在存储桶下面新建目录进行存放:

ThinkPHP5.0上传图片到阿里云OSS_第3张图片

2.在tp5的config中做如下一些配置:

//阿里云OSS配置
'alioss'        =>[
    'KeyId'      => 'LTAIRb27m9hb3cIm',  //AccessKey ID
    'KeySecret'  => 'nV2XfBuTEFUUYfT2gHnFMUAgwwCinQ ',  //Access Key Secret
    'EndPoint'   => 'oss-cn-beijing.aliyuncs.com',  //外网访问节点
    'Bucket'     => 'test-lws',  //Bucket名称
],

其中AccessKey ID和Access Key Secret在这个地方可以找到:(注意保密)

ThinkPHP5.0上传图片到阿里云OSS_第4张图片

3.到阿里云对象存储OSS官网文档,下载PHP的demo,下载后解压重命名文件夹为aliyun-oss,我放到了tp5的extend目录下面:

ThinkPHP5.0上传图片到阿里云OSS_第5张图片

4. 然后在application/common下面新建一个阿里云OSS上传的工具类:

ThinkPHP5.0上传图片到阿里云OSS_第6张图片

AliOss.php:(注意引入tp5的Image图像处理类库)

type();
            //执行阿里云上传
            $result = $ossClient->uploadFile($Bucket, $fileName, $file->getInfo()['tmp_name']);
            //图片地址:$result['info']['url']
            $arr = ['code'=>200,'msg'=>'上传成功','data'=>$fileName];
        } catch (OssException $e) {
            $arr = ['code'=>0,'msg'=>$e->getMessage(),'data'=>''];
        }
        return $arr;
    }
}

5.上传图片时调用OSS工具类:

file('headimg');
       	if($file){
            $res = AliOss::uploadFile('headimg',$file);
            if($res['code']==200){
                //图片路径
                $headimg = $res['data'];
                //业务逻辑省略......
            }
        }
        return json($res);
    }
}

 

你可能感兴趣的:(PHP)