From 17f763d6ea0cb14e89b50aaf9ce8d8e2ca737b29 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Thu, 28 Mar 2019 17:10:25 +0800 Subject: [PATCH] Fix: Browse files from all users in filter mode --- application/index/model/FileManage.php | 92 +++++++++++++---------- application/index/model/UploadHandler.php | 26 +++++++ 2 files changed, 80 insertions(+), 38 deletions(-) diff --git a/application/index/model/FileManage.php b/application/index/model/FileManage.php index 473d6ca4..e452c845 100644 --- a/application/index/model/FileManage.php +++ b/application/index/model/FileManage.php @@ -546,56 +546,72 @@ class FileManage extends Model{ switch ($keyWords) { case '{filterType:video}': $fileList = Db::name('files') - ->where('upload_user',$uid) - ->where('orign_name',"like","%.mp4") - ->whereOr('orign_name',"like","%.flv") - ->whereOr('orign_name',"like","%.avi") - ->whereOr('orign_name',"like","%.wmv") - ->whereOr('orign_name',"like","%.mkv") - ->whereOr('orign_name',"like","%.rm") - ->whereOr('orign_name',"like","%.rmvb") - ->whereOr('orign_name',"like","%.mov") - ->whereOr('orign_name',"like","%.ogv") + ->where(function ($query)use($uid) { + $query->where('upload_user',$uid); + }) + ->where(function ($query) { + $query->where('orign_name',"like","%.mp4") + ->whereOr('orign_name',"like","%.flv") + ->whereOr('orign_name',"like","%.avi") + ->whereOr('orign_name',"like","%.wmv") + ->whereOr('orign_name',"like","%.mkv") + ->whereOr('orign_name',"like","%.rm") + ->whereOr('orign_name',"like","%.rmvb") + ->whereOr('orign_name',"like","%.mov") + ->whereOr('orign_name',"like","%.ogv"); + }) ->select(); break; case '{filterType:audio}': $fileList = Db::name('files') - ->where('upload_user',$uid) - ->where('orign_name',"like","%.mp3") - ->whereOr('orign_name',"like","%.flac") - ->whereOr('orign_name',"like","%.ape") - ->whereOr('orign_name',"like","%.wav") - ->whereOr('orign_name',"like","%.acc") - ->whereOr('orign_name',"like","%.ogg") + ->where(function ($query)use($uid) { + $query->where('upload_user',$uid); + }) + ->where(function ($query) { + $query->where('orign_name',"like","%.mp3") + ->whereOr('orign_name',"like","%.flac") + ->whereOr('orign_name',"like","%.ape") + ->whereOr('orign_name',"like","%.wav") + ->whereOr('orign_name',"like","%.acc") + ->whereOr('orign_name',"like","%.ogg"); + }) ->select(); break; case '{filterType:image}': $fileList = Db::name('files') - ->where('upload_user',$uid) - ->where('orign_name',"like","%.bmp") - ->whereOr('orign_name',"like","%.flac") - ->whereOr('orign_name',"like","%.iff") - ->whereOr('orign_name',"like","%.png") - ->whereOr('orign_name',"like","%.gif") - ->whereOr('orign_name',"like","%.jpg") - ->whereOr('orign_name',"like","%.jpge") - ->whereOr('orign_name',"like","%.psd") - ->whereOr('orign_name',"like","%.svg") - ->whereOr('orign_name',"like","%.webp") + ->where(function ($query)use($uid) { + $query->where('upload_user',$uid); + }) + ->where(function ($query) { + $query->where('orign_name',"like","%.bmp") + ->whereOr('orign_name',"like","%.flac") + ->whereOr('orign_name',"like","%.iff") + ->whereOr('orign_name',"like","%.png") + ->whereOr('orign_name',"like","%.gif") + ->whereOr('orign_name',"like","%.jpg") + ->whereOr('orign_name',"like","%.jpge") + ->whereOr('orign_name',"like","%.psd") + ->whereOr('orign_name',"like","%.svg") + ->whereOr('orign_name',"like","%.webp"); + }) ->select(); break; case '{filterType:doc}': $fileList = Db::name('files') - ->where('upload_user',$uid) - ->where('orign_name',"like","%.txt") - ->whereOr('orign_name',"like","%.md") - ->whereOr('orign_name',"like","%.pdf") - ->whereOr('orign_name',"like","%.doc") - ->whereOr('orign_name',"like","%.docx") - ->whereOr('orign_name',"like","%.ppt") - ->whereOr('orign_name',"like","%.pptx") - ->whereOr('orign_name',"like","%.xls") - ->whereOr('orign_name',"like","%.xlsx") + ->where(function ($query)use($uid) { + $query->where('upload_user',$uid); + }) + ->where(function ($query) { + $query->where('orign_name',"like","%.txt") + ->whereOr('orign_name',"like","%.md") + ->whereOr('orign_name',"like","%.pdf") + ->whereOr('orign_name',"like","%.doc") + ->whereOr('orign_name',"like","%.docx") + ->whereOr('orign_name',"like","%.ppt") + ->whereOr('orign_name',"like","%.pptx") + ->whereOr('orign_name',"like","%.xls") + ->whereOr('orign_name',"like","%.xlsx"); + }) ->select(); break; default: diff --git a/application/index/model/UploadHandler.php b/application/index/model/UploadHandler.php index b6e2d71d..e4f88099 100644 --- a/application/index/model/UploadHandler.php +++ b/application/index/model/UploadHandler.php @@ -26,6 +26,8 @@ class UploadHandler extends Model{ public $upyunPolicy; public $s3Policy; public $s3Sign; + public $cosPolicy; + public $cosSign; public $dirName; public $s3Credential; public $siteUrl; @@ -319,6 +321,9 @@ class UploadHandler extends Model{ case 'remote': return $this->getRemoteToken(); break; + case 'cos': + return $this->getCosToken(); + break; default: # code... break; @@ -514,6 +519,27 @@ class UploadHandler extends Model{ $this->callBackKey = $callbackKey; } + public function getCosToken(){ + $callbackKey = $this->getRandomKey(); + $sqlData = [ + 'callback_key' => $callbackKey, + 'pid' => $this->policyId, + 'uid' => $this->userId + ]; + Db::name('callback')->insert($sqlData); + $dirName = $this->getObjName($this->policyContent['dirrule']); + $returnValu["expiration"] = date("Y-m-d",time()+1800)."T".date("H:i:s",time()+1800).".000Z"; + $returnValu["conditions"][0]["bucket"] = $this->policyContent['bucketname']; + $returnValu["conditions"][1][0]="starts-with"; + $returnValu["conditions"][1][1]='$key'; + if($this->policyContent["autoname"]){ + $this->ossFileName = $dirName.(empty($dirName)?"":"/").$this->getObjName($this->policyContent['namerule'],"oss");; + }else{ + $this->ossFileName = $dirName.(empty($dirName)?"":"/").'${filename}'; + } + $returnValu["conditions"][2]=["content-length-range",1,(int)$this->policyContent['max_size']]; + } + public function getOssToken(){ $dirName = $this->getObjName($this->policyContent['dirrule']); $returnValu["expiration"] = date("Y-m-d",time()+1800)."T".date("H:i:s",time()+1800).".000Z";