| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- /**
- * 腾讯云上文件存储上传管理
- */
- include_once(ROOT_PATH.'/include/cos-php-sdk-v4-master/include.php');
- use Qcloud\Cos\Api;
- class qcloudCosChajian extends Chajian{
-
- private $bucket = 'xinhuoa';
- private $folder = 'defile'; //默认目录
- private $region = 'sh'; //默认分区
-
-
- protected function initChajian()
- {
- $this->bucket = getconfig('qcloudCos_bucket', $this->bucket);
- $this->region = getconfig('qcloudCos_region', $this->region);
- $this->folder = getconfig('qcloudCos_folder', $this->folder);
- $this->app_id = getconfig('qcloudCos_APPID');
-
- $config = array(
- 'app_id' => $this->app_id,
- 'secret_id' => getconfig('qcloudCos_SecretId'),
- 'secret_key'=> getconfig('qcloudCos_SecretKey'),
- 'region' => $this->region,
- 'timeout' => 180
- );
- $this->cosApi = new Api($config);
-
- }
-
- /**
- * 上传文件
- * filepath 要上传的文件全路径
- * updir 上传到哪个目录
- * upname 上传后保存文件名
- */
- public function upload($filepath, $updir='', $upname='')
- {
- if(!file_exists($filepath))return false;
- $filea = explode('/', $filepath);
- if($upname=='')$upname = $filea[count($filea)-1];
- if($updir=='')$updir = $this->folder;
- $ret = $this->cosApi->upload($this->bucket, $filepath, ''.$updir.'/'.$upname.'');
- if($ret['code']==0)$ret['url'] = $this->geturl().'/'.$updir.'/'.$upname.'';
- return $ret;
- }
-
- //上传
- public function uploadFile($path)
- {
- $ret = $this->upload(ROOT_PATH.'/'.$path,'', $path);
- if(!$ret)return returnerror();
- if(!isset($ret['url']))return returnerror();
- $barr = returnsuccess();
- $barr['url'] = $ret['url'];
- return $barr;
- }
-
- /**
- * 简单上传要调用
- */
- public function uploadBase($path)
- {
- if(getconfig('qcloudCos_autoup')){
- return $this->uploadFile($path);
- }else{
- if(getconfig('alioss_autoup')){
- $obj = c('alioss');
- if(method_exists($obj, 'uploadFile'))return $obj->uploadFile($path);
- }
- }
- return returnerror();
- }
-
- /**
- * 创建文件夹
- */
- public function createFolder($folder)
- {
- $ret = Cosapi::createFolder($this->bucket, $folder);
- return $ret;
- }
-
- /**
- * 获取目录下的文件
- */
- public function listFolder($folder='', $num=20)
- {
- if($folder=='')$folder = $this->folder;
- $ret = $this->cosApi->listFolder($this->bucket, $folder, $num);
- if($ret['code'] != 0){
- return returnerror($ret['message']);
- }else{
- $barr = returnsuccess($ret['data']['infos']);
- $barr['folder'] = $folder;
- return $barr;
- }
- }
-
- /**
- * 删除文件
- */
- public function delFile($path)
- {
- $ret = $this->cosApi->delFile($this->bucket, $path);
- return $ret;
- }
-
- public function delListFile()
- {
- $barr = $this->listFolder('',100);
- if($barr['success']){
- foreach($barr['data'] as $k=>$rs){
- $this->delFile($this->folder.'/'.$rs['name']);
- }
- }
- }
-
- /**
- * 下载文件到服务器本地
- */
- public function download($srcPath, $dstPath)
- {
- $res = $this->cosApi->download($this->bucket, $srcPath, $dstPath);
- return $res;
- }
-
- /**
- * 获取外网访问地址
- */
- public function geturl()
- {
- $xarr['nj'] = 'ap-nanjing';
- $xarr['cd'] = 'ap-chengdu';
- $xarr['bj'] = 'ap-beijing';
- $xarr['gz'] = 'ap-guangzhou';
- $xarr['sh'] = 'ap-shanghai';
- $xarr['cq'] = 'ap-chongqing';
- $xarr['bjfsi'] = 'ap-beijing-fsi';
- $xarr['szfsi'] = 'ap-shenzhen-fsi';
- $xarr['shfsi'] = 'ap-shanghai-fsi';
- $xarr['hk'] = 'ap-hongkong';
- $qustr = arrvalue($xarr, $this->region,'ap-shanghai');
- $url = 'https://'.$this->bucket.'-'.$this->app_id.'.cos.'.$qustr.'.myqcloud.com';
- return $url;
- }
- }
|