1. 程式人生 > >tp5.1整合阿里雲OSS圖片上傳

tp5.1整合阿里雲OSS圖片上傳

首先利用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;
    }