From 159ee86b6045ac179694929008133ebe4b640880 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Wed, 5 Sep 2018 16:43:52 +0800 Subject: [PATCH] add: Task model and database table --- application/index/model/Task.php | 31 +++++++++++++++++++++++ application/index/model/UploadHandler.php | 28 ++++++++++++++++++++ mysql.sql | 17 ++++++++++++- static/js/qiniu.js | 6 ++--- 4 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 application/index/model/Task.php diff --git a/application/index/model/Task.php b/application/index/model/Task.php new file mode 100644 index 00000000..b0801816 --- /dev/null +++ b/application/index/model/Task.php @@ -0,0 +1,31 @@ +insert([ + "task_name" => $this->taskName, + "attr" => $this->taskContent, + "type" => $this->taskType, + "status" => "todo", + ]); + } + +} +?> \ No newline at end of file diff --git a/application/index/model/UploadHandler.php b/application/index/model/UploadHandler.php index f439fd41..f83214fd 100644 --- a/application/index/model/UploadHandler.php +++ b/application/index/model/UploadHandler.php @@ -8,6 +8,7 @@ use think\Db; use Qiniu\Auth; use \app\index\model\Option; use \app\index\model\FileManage; +use \app\index\model\Task; class UploadHandler extends Model{ @@ -183,12 +184,36 @@ class UploadHandler extends Model{ ); @list($width, $height, $type, $attr) = getimagesize(rtrim($savePath, DS).DS.$Uploadinfo->getSaveName()); $picInfo = empty($width)?" ":$width.",".$height; + + //处理Onedrive等非直传 + if($this->policyContent['policy_type'] == "onedrive"){ + $task = new Task(); + $task->taskName = "Upload" . $info["name"] . "to Onedrive"; + $task->taskType = "uploadSingleToOnedrive"; + $task->taskContent = json_encode([ + "path" => $info["path"], + "fname" => $info["name"], + "objname" => $generatePath."/".$Uploadinfo->getSaveName(), + "fsize" => $Uploadinfo->getSize(), + "picInfo" => $picInfo, + "policyId" => $this->policyContent['id'] + ]); + + $task->saveTask(); + + echo json_encode(array("key" => $info["name"])); + return; + } + + //向数据库中添加文件记录 $addAction = FileManage::addFile($jsonData,$this->policyContent,$this->userId,$picInfo); if(!$addAction[0]){ $tmpFileName = $Uploadinfo->getSaveName(); unset($Uploadinfo); $this->setError($addAction[1],true,$tmpFileName,$savePath); } + + //扣除容量 FileManage::storageCheckOut($this->userId,$jsonData["fsize"],$Uploadinfo->getInfo('size')); echo json_encode(array("key" => $info["name"])); }else{ @@ -221,6 +246,9 @@ class UploadHandler extends Model{ case 'local': return $this->getLocalToken(); break; + case 'onedrive': + return $this->getLocalToken(); + break; case 'oss': return $this->getOssToken(); break; diff --git a/mysql.sql b/mysql.sql index 7ebbf972..c6bf7392 100644 --- a/mysql.sql +++ b/mysql.sql @@ -323,6 +323,18 @@ ALTER TABLE `sd_download` -- -- Indexes for dumped tables -- +-- +-- 表的结构 `sd_task` +-- + +CREATE TABLE `sd_task` ( + `id` int(11) NOT NULL, + `task_name` text NOT NULL, + `attr` text NOT NULL, + `type` text NOT NULL, + `status` text NOT NULL, + `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- -- Indexes for table `sd_callback` @@ -335,7 +347,8 @@ ALTER TABLE `sd_callback` -- ALTER TABLE `sd_chunks` ADD PRIMARY KEY (`id`); - +ALTER TABLE `sd_task` + ADD PRIMARY KEY (`id`); -- -- Indexes for table `sd_corn` -- @@ -419,6 +432,8 @@ ALTER TABLE `sd_files` -- ALTER TABLE `sd_folders` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +ALTER TABLE `sd_task` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -- -- 使用表AUTO_INCREMENT `sd_groups` -- diff --git a/static/js/qiniu.js b/static/js/qiniu.js index 2800307f..b122cde4 100644 --- a/static/js/qiniu.js +++ b/static/js/qiniu.js @@ -183,7 +183,7 @@ function QiniuJsSDK() { "https://up.qbox.me" ] }; -}else if(uploadConfig.saveType == "local" || uploadConfig.saveType == "oss" ||uploadConfig.saveType == "upyun"||uploadConfig.saveType == "s3"|| uploadConfig.saveType == "remote"){ +}else if(uploadConfig.saveType == "local" || uploadConfig.saveType == "oss" ||uploadConfig.saveType == "upyun"||uploadConfig.saveType == "s3"|| uploadConfig.saveType == "remote"||uploadConfig.saveType == "onedrive"){ qiniuUploadUrl = uploadConfig.upUrl; var qiniuUploadUrls = [uploadConfig.upUrl,]; var qiniuUpHosts = { @@ -994,7 +994,7 @@ function QiniuJsSDK() { 'token': that.token, 'x:path': file.path }; - }else if(uploadConfig.saveType == "local"){ + }else if(uploadConfig.saveType == "local"||uploadConfig.saveType == "onedrive"){ multipart_params_obj = { 'path': file.path }; @@ -1493,7 +1493,7 @@ function QiniuJsSDK() { } } local_path = ""; - if(uploadConfig.saveType == "local"){ + if(uploadConfig.saveType == "local"||uploadConfig.saveType == "onedrive"){ pathTmp = file.path; if(file.path == ""){ pathTmp = "ROOTDIR";