tp5.1整合阿里雲OSS圖片上傳
阿新 • • 發佈:2019-01-02
首先利用tp5composer機制去下載一個阿里雲oss的sdk
composer require aliyuncs/oss-sdk-php
然後,去官方找些配置,在application同級目錄的config目錄裡面新建一個alioss.php的檔案,講配置資訊放進去向下面這樣
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/8/3 * Time: 11:25 */ // +---------------------------------------------------------------------- // | 阿里雲OSS配置 // +---------------------------------------------------------------------- return [ 'KeyId' => '', //Access Key ID 'KeySecret' => '', //Access Key Secret 'Endpoint' => '', //阿里雲oss 外網地址endpoint 'Bucket' => '', //Bucket名稱 ];
然後就可很簡單了,新建一個控制器,在你的控制器裡面接到圖片,最好用tp5自帶的接圖片的方法
public function uploadFile()
{
$file = request()->file('file'); //獲取到上傳的檔案
print_r($this->uploadFileVideo($file));
}
最好就是阿里雲oss去處理圖片了
public function ossUploadFile($file) { if ('' == $file) return '引數為空'; $resResult = Image::open($file); // 嘗試執行 try { $config = Config::pull('alioss'); //獲取Oss的配置 //例項化物件 將配置傳入 $ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']); //這裡是有sha1加密 生成檔名 之後連線上字尾 $fileName = 'img/' . sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type(); //執行阿里雲上傳 $result = $ossClient->uploadFile($config['Bucket'], $fileName, $file->getInfo()['tmp_name']); /** * 這個只是為了展示 * 可以刪除或者保留下做後面的操作 */ $arr = [ //圖片地址 'imgurl' => $result['info']['url'], //資料庫儲存名稱 'dbimgName' => $fileName ]; } catch (OssException $e) { return $e->getMessage(); } //將結果輸出 return $arr; }