腾讯云存储PHP上传实例【代码示例】
生活随笔
收集整理的這篇文章主要介紹了
腾讯云存储PHP上传实例【代码示例】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近遇到一個(gè)項(xiàng)目,考慮到會(huì)上傳大量的手機(jī)照片,而手機(jī)的照片尺寸比較大,服務(wù)器增加存儲(chǔ)盤來存照片,成本太大,最終考慮是用云存儲(chǔ),成本降了很多,服務(wù)器買的是騰訊的,所以使用的是騰訊的云存儲(chǔ)。
簡(jiǎn)單代碼示例:
第一步:首先下載騰訊云存儲(chǔ)的SDK(cos-php-sdk-v5)
配置具體的參數(shù):(具體的參數(shù)配置參考騰訊云COS存儲(chǔ),新建存儲(chǔ)桶,獲取秘鑰等)
具體代碼:
// 初始化COS
private function initCos(){
require './cosphpsdkv5/index.php';
$secretId = "AKIDay6aaaaaaaaaawsh2A2"; //"云 API 密鑰 SecretId";
$secretKey = "rUqzrLdddddddddddddddddvwkHZa"; //"云 API 密鑰 SecretKey";
$region = "ap-nanjing"; //設(shè)置一個(gè)默認(rèn)的存儲(chǔ)桶地域
$cosClient = new QcloudCosClient(
array(
'region' => $region,
'schema' => 'http', //協(xié)議頭部,默認(rèn)為http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey
)
)
);
return $cosClient;
}
上傳代碼示例:
代碼示例:
public function cosupload(){
set_time_limit(0);//防止上傳大文件超時(shí)
// 判斷上傳的文件類型
$types = 'image'; // 圖片類型
if (!in_array($types,explode('/',$file['type']))) {
return json_encode(['code' => 0, 'msg' => '類型錯(cuò)誤,不支持的文件類型', 'off' => 0]);
}
// 圖片目錄
$imgdirectory = "picture";
$bucket = "picture-1255572032"; // 存儲(chǔ)桶名稱
$filename = explode('.', $file['name']);
$key = date('Ymd').'/'.md5(time().'http://' . $_SERVER['HTTP_HOST'].rand(0,9999)).'.'.end($filename);
$cosClient = $this->initCos();
try{
$result = $cosClient->putObject(array(
'Bucket' => $bucket,
'Key' => $key,
'Body' => fopen($file['tmp_name'], 'rb')
));
var_dump($result);
}catch(Exception $e){
echo "$e
";
}
// try{
// // $result = $cosClient->putObject(array(
// // 'Bucket' => $bucket,
// // 'Key' => $key,
// // 'Body' => '說的不錯(cuò)呀~'
// // ));
// $result =
// }catch(Exception $e){
// echo "$e
";
// }
}
遇到的問題,圖片上傳成功,但是直接訪問,訪問不了,原因是:存儲(chǔ)桶的權(quán)限是私有讀寫,需要sign簽名才能讀取,但是可以修改權(quán)限,共有讀私有寫,或者共有讀寫就行。
總結(jié)
以上是生活随笔為你收集整理的腾讯云存储PHP上传实例【代码示例】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 瑞星2008网络版序列号大全
- 下一篇: 安装VS 2008 EXPRESS出现无