**tp3.2阿裡oss添加,删除圖檔**
下載下傳SDK:https://github.com/aliyun/aliyun-oss-php-sdk
釋放:Library/Vendor
1.
配置:convention.php:
‘OSS’ => array(
‘ACCESS_KEY_ID’ => ‘******’, //從OSS獲得的AccessKeyId
‘ACCESS_KEY_SECRET’ => ‘******’, //從OSS獲得的AccessKeySecret
‘ENDPOINT’ => ‘******’, //您標明的OSS資料中心通路域名,例如oss-cn-hangzhou.aliyuncs.com
‘BUCKET’=>’******’, //要存放的檔案夾
),
2.
//oss上傳,删除圖檔
定義函數:
function oss_upload($name,$link){
//$name要上傳圖檔的子目錄,$link要删除的圖檔連結
$url='https://****.oss-cn-shenzhen.aliyuncs.com/'; //上傳的oss位址
//本地上傳類
$upload = new \Think\Upload();// 執行個體化上傳類
$upload->maxSize = 3145728 ;// 設定附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳類型
$upload->rootPath = 'Uploads/'; // 設定附件上傳根目錄
$upload->savePath = $name.'/'; // 設定附件上傳(子)目錄
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
$info = $upload->upload();
//oss上傳類
vendor('OSS.autoload');
$ossConfig = C('OSS');
$accessKeyId = $ossConfig['ACCESS_KEY_ID'];//阿裡雲OSS ID
$accessKeySecret = $ossConfig['ACCESS_KEY_SECRET'];//阿裡雲OSS 秘鑰
$endpoint = $ossConfig['ENDPOINT'];//阿裡雲OSS 位址
$ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
$bucket = $ossConfig['BUCKET']; //oss中的檔案上傳空間
if (!$info) {// 上傳錯誤提示錯誤資訊
//處理上傳錯誤資訊
$this->error($upload->getError());
} else {// 上傳成功
// 删除oss圖檔
if(!empty($link)){
$edit=explode('com/',$link);
$edit=$edit[1];
$ossClient->deleteObject('v388', $edit);
}
foreach ($info as $k => $v){
$object = $v['savepath'].$v['savename'];//想要儲存檔案的名稱
//這個數組是存上傳成功以後傳回的通路路徑,多檔案時使用implode函數将其組合
$downlink[] = $bucket.'.'.$endpoint.'/'.$object;
$file = './Uploads/' .$v['savepath'].$v['savename'];//本地檔案路徑
// var_dump( $v['savename']);die;
try {
$ossClient->uploadFile($bucket, $object, $file);
//上傳成功
//這裡可以删除上傳到本地的檔案。
unlink($file);
$add=$url.$object;
echo json_encode(array('error' => 0, 'url' =>$add));
} catch (OssException $e) {
//上傳失敗
printf($e->getMessage() . "\n");
return;
}
}
}
}