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('操作失敗');
}