1.申请Access Key ID和Access Key Secret,以及创建好你的Bucket
2.通过composer安装oss插件
通过cmd,到项目的目录下,输入下面的指令。
composer require aliyuncs/oss-sdk-php
3.配置好oss信息,在config.php中
'aliyun_oss' => [ 'accessKeyId' => '', //您的Access Key ID 'accessKeySecret' => '', //您的Access Key Secret 'endpoint' => '', //阿里云oss 外网地址endpoint 'bucket' => '', //Bucket名称 'url' => '' // 访问的地址]
4.上传图片,并处理到aliyun中
function aliyun($savePath,$category='',$isunlink=false,$bucket="yunlutong-img"){ $accessKeyId = config('aliyun_oss.accessKeyId');//去阿里云后台获取秘钥 $accessKeySecret = config('aliyun_oss.accessKeySecret');//去阿里云后台获取秘钥 $endpoint = config('aliyun_oss.endpoint');//你的阿里云OSS地址 $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); // 判断bucketname是否存在,不存在就去创建 if( !$ossClient->doesBucketExist($bucket)){ $ossClient->createBucket($bucket); } $category=empty($category)?$bucket:$category; $savePath = str_replace("\\","/",$savePath); $object = $category.'/'.$savePath;//想要保存文件的名称 $file = './uploads\\'.$savePath;//文件路径,必须是本地的。 try{ $ossClient->uploadFile($bucket,$object,$file); if ($isunlink==true){ unlink($file); } }catch (OssException $e){ $e->getErrorMessage(); } $oss=config('aliyun_oss.url'); return $oss."/".$object; }
记得要在类的头部引入,
use \OSS\OssClient;
在图片长传之后,处理到阿里云oss中,并将地址保存到数据库
// 添加$file = request()->file('img');// 移动到框架应用根目录/public/uploads/ 目录下$upload_info = $file->move(config('upload_path'));if(!$upload_info){ // 上传失败获取错误信息 $this->error($file->getError()); } $oss_img_url = $this->aliyun($upload_info->getSaveName(),'live'); $data['title'] = input('post.title'); $data['info'] = input('post.info'); $data['url'] = input('post.url'); $data['sort'] = input('post.sort'); $data['addtime'] = time(); $data['img'] = $oss_img_url;// '/uploads\\'.$upload_info->getSaveName();$res = db("live_banner")->insert($data);if ($res) { $this->success('操作成功', url('LiveExtra/bannerList')); } else { $this->error('操作失败'); }