Laravel項目使用騰訊雲對象存儲上傳圖片(cos-php-sdk-v5版本)

爲了加快網站訪問速度、下降網站負載,如今愈來愈多的網站選擇把圖片等靜態文件放在雲上,這裏介紹一下騰訊雲對象存儲在Laravel項目中的使用php

 一、申請騰訊雲對象存儲、建立Bucket、獲取APPID等參數,配置在.ENV文件git

 

二、下載官方SDKgithub

在composer.json文件添加以下代碼json

{ "require": { "qcloud/cos-sdk-v5": ">=1.0" } }

composer installapp

 

三、在公共文件中引入SDKcomposer

use Qcloud\Cos\Api;

 

四、使用SDK上傳文件dom

 

 function uploadImg($fileName,$realPath){
            $cosClient = new Qcloud\Cos\Client(array('region' => env('REGION'),
                'credentials'=> array(
                    'appId' => env('APPID'),
                    'secretId'    => env('SECRETID'),
                    'secretKey' => env('SECRETKEY'))));
            try {
                $result = $cosClient->putObject(array(
                    'Bucket' => env('BUCKET'),
                    'Key' =>  $fileName,
                    'Body' => fopen($realPath, 'rb'),
                    'ServerSideEncryption' => 'AES256'));
            } catch (\Exception $e) {
                echo "$e\n";
                echo '</br> 失敗';
            }
        }

 

其中Key是騰訊雲要上傳的路徑加文件名,Body是現文件的路徑ide

 

五、控制器調用上傳方法網站

 

public function testv5()
    {
        $file = Input::file('logo');
        //判斷是否爲空
        if(empty($file)){
            return back()->withErrors('請上傳logo')->withInput();
        }
        //取得上傳文件的大小
        $sizes = $file->getSize();
        $size = $sizes/1024;
        if($size > UPLOAD_IMAGE_MAXSIZE){
            return  back()->withErrors(['上傳的圖片不能超過2M'])->withInput();
        }
        //格式不對提醒
        $ext = $file->getClientOriginalExtension();     // 擴展名
        $allowed_extensions = explode('|',UPLOAD_IMAGE_ALLOWED);
        if ($ext && !in_array($ext, $allowed_extensions)) {
            return  back()->withErrors(['您只能上傳png、jpg、jpeg或者gif格式的文件'])->withInput();
        }
        // 獲取文件相關信息
        $realPath = $file->getRealPath();   //臨時文件的絕對路徑
        //上傳路徑
        $fileName =env('FILEPATH').str_random(10).time().'.'.$ext;  //拼接圖片名
        uploadImg($fileName,$realPath);
    }

 

 

 

 

六、上傳成功即可以在騰訊雲後臺看到上傳的文件及路徑了ui

 

PS:更多API接口如文件夾的建立、刪除等請查看官方快速入門文檔接口文檔以及demo

相關文章
相關標籤/搜索