上傳本地圖檔到騰訊雲準備事項:
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!