基於PHP後臺上傳圖片到騰訊雲

上傳本地圖片到騰訊雲準備事項:
1、在https://console.cloud.tencent.com/cam/capi上先獲得secretId ,secretKey ,APPID三項。先新建祕鑰。
在這裏插入圖片描述
2.在https://console.cloud.tencent.com/cos5/bucket上創建一個存儲桶,意思就是創建一個裝文件的桶用來存儲文件或圖片。以後上傳的圖片都會在這裏存儲起來。
在這裏插入圖片描述
創建存儲桶的話系統給了個接口可以不用手動創建,也可以試着用這個接口來。

try {
    $bucket = "examplebucket-1250000000"; //存儲桶名稱 格式:BucketName-APPID
    $result = $cosClient->createBucket(array('Bucket' => $bucket));
    //請求成功
    print_r($result);
} catch (\Exception $e) {
    //請求失敗
    echo($e);
}

以上準備條件做好之後我們開始來上傳圖片到騰訊雲上。

第一步:先下載php SDK,下載地址:https://cloud.tencent.com/document/product/436/12266
下載解壓後我們看到文件夾是這樣的:
在這裏插入圖片描述
注意了,然後把第一個文件夾整體放在tp框架根目錄的vendor下,不要放錯位置了。放錯位置就加載不出來了。
在這裏插入圖片描述
第二步:直接上代碼,傳圖片。

 /**
     * 騰訊雲圖片上傳
     * @param $local_path  本地文件的絕對路徑
     * @return mixed
     */
    public function uploadTencentCloud($local_path)
    {
        require '../vendor/cos-php-sdk-v5/vendor/autoload.php';
        $secretId = config('QCLOUD.SecretId');
        $secretKey = config('QCLOUD.SecretKey');
        $region = config('QCLOUD.region');

        $cosClient = new \Qcloud\Cos\Client(
            array(
                'region' => $region,
                'schema' => 'http',
                'credentials'=> array(
                    'secretId'  => $secretId ,
                    'secretKey' => $secretKey)));

        try {
            $result = $cosClient->upload(
                $bucket = config('QCLOUD.bucket'),
                $key = md5($local_path.time().rand(1,100000)).'.'.pathinfo($local_path,PATHINFO_EXTENSION),
                $body = fopen($local_path, 'rb')
            );
            if($result){
                return $result['Location'];
            }
        } catch (\Exception $e) {
            echo($e);
        }

    }

 require '../vendor/cos-php-sdk-v5/vendor/autoload.php';這行如果不行的話,寫成這樣:
  include_once $_SERVER['DOCUMENT_ROOT'].'../vendor/cos-php-sdk-v5/vendor/autoload.php'
  使用include_once 或者require_once引用最好,因爲批量傳圖的時候會報錯。那麼我們就知道once的好處了。

以上代碼中的存儲桶地域:https://cloud.tencent.com/document/product/436/6224
在這裏插入圖片描述
最後打印$result對象是這樣的:

GuzzleHttp\Command\Result Object
(
    [ETag] => "1eeec19af2564ccab82ee1622e54a34f"
    [RequestId] => NWVjZTAzYTlfM2RhZDUzNjRfNTZjY2VfOTNkNmNm
    [Key] => a1.jpg
    [Bucket] => hml-1258399702
    [Location] => hml-1258399702.cos.ap-shenzhen-fsi.myqcloud.com/a1.jpg
)

代表圖片上傳成功。
然後我們去後臺的存儲桶裏看一下:
在這裏插入圖片描述
發現已經上傳成功,打開就是我們剛纔傳的那張照片。

以上就是騰訊雲上傳圖片的代碼示例,如果有不懂的可以交流。thank you!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章