From 65dcedb3ca8cb7cf2ff6488ccbda6c8534f95560 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Tue, 5 Mar 2019 19:28:55 +0800 Subject: [PATCH] Fix: blocking while get uptoken --- application/index/controller/File.php | 2 +- application/index/model/FileManage.php | 4 +- application/index/model/LocalAdapter.php | 18 ++-- application/index/view/home/home.html | 5 +- static/js/uploader/qiniu.js | 104 ++++++++++++----------- 5 files changed, 72 insertions(+), 61 deletions(-) diff --git a/application/index/controller/File.php b/application/index/controller/File.php index fd744e59..c2240979 100644 --- a/application/index/controller/File.php +++ b/application/index/controller/File.php @@ -170,6 +170,6 @@ class File extends Controller{ } } - return FileManage::createFolder($dirName,$dirPosition,$this->userObj->uid); + return json(FileManage::createFolder($dirName,$dirPosition,$this->userObj->uid)); } } \ No newline at end of file diff --git a/application/index/model/FileManage.php b/application/index/model/FileManage.php index 45c5ff51..e9439e09 100644 --- a/application/index/model/FileManage.php +++ b/application/index/model/FileManage.php @@ -543,7 +543,9 @@ class FileManage extends Model{ $fileList = Db::name('files')->where('upload_user',$uid)->where('dir',$path)->select(); $dirList = Db::name('folders')->where('owner',$uid)->where('position',$path)->select(); $count= 0; - $fileListData=[]; + $fileListData=[ + "result"=>[], + ]; foreach ($dirList as $key => $value) { $fileListData['result'][$count]['name'] = $value['folder_name']; $fileListData['result'][$count]['rights'] = "drwxr-xr-x"; diff --git a/application/index/model/LocalAdapter.php b/application/index/model/LocalAdapter.php index e328ec3f..01d3564b 100644 --- a/application/index/model/LocalAdapter.php +++ b/application/index/model/LocalAdapter.php @@ -301,15 +301,15 @@ class LocalAdapter extends Model{ * @return array */ static function getThumbSize($width,$height){ - $rate = $width/$height; - $maxWidth = 90; - $maxHeight = 39; - $changeWidth = 39*$rate; - $changeHeight = 90/$rate; - if($changeWidth>=$maxWidth){ - return [(int)$changeHeight,90]; - } - return [39,(int)$changeWidth]; + // $rate = $width/$height; + // $maxWidth = 280; + // $maxHeight = 150; + // $changeWidth = 150*$rate; + // $changeHeight = 280/$rate; + // if($changeWidth>=$maxWidth){ + // return [(int)$changeHeight,280]; + // } + return [230,200]; } /** diff --git a/application/index/view/home/home.html b/application/index/view/home/home.html index fa7b77ed..7cb0d1b9 100644 --- a/application/index/view/home/home.html +++ b/application/index/view/home/home.html @@ -31,7 +31,10 @@ allowShare:"{$groupData.allow_share}", allowRemoteDownload:"{:explode(",",$groupData.aria2)[0]}", allowTorrentDownload:"{:explode(",",$groupData.aria2)[1]}", - }; + }; + apiURL={ + imgThumb:"/File/Thumb" + }; diff --git a/static/js/uploader/qiniu.js b/static/js/uploader/qiniu.js index 1f959b2f..21072c57 100644 --- a/static/js/uploader/qiniu.js +++ b/static/js/uploader/qiniu.js @@ -714,7 +714,7 @@ function QiniuJsSDK() { logger.debug("get uptoken from: ", that.uptoken_url); // TODO: use mOxie var ajax = that.createAjax(); - ajax.open('GET', that.uptoken_url, false); + ajax.open('GET', that.uptoken_url, true); ajax.setRequestHeader("If-Modified-Since", "0"); // ajax.onreadystatechange = function() { // if (ajax.readyState === 4 && ajax.status === 200) { @@ -723,58 +723,64 @@ function QiniuJsSDK() { // } // }; ajax.send(); - if (ajax.status === 200) { - var res = that.parseJSON(ajax.responseText); - that.token = res.uptoken; - if (uploadConfig.saveType == "oss"){ - var putPolicy = that.token; - that.sign = res.sign; - that.access = res.id; - that.file_name = res.key; - that.callback = res.callback; - }else if(uploadConfig.saveType == "s3"){ - var putPolicy = that.token; - that.sign = res.sign; - that.policy = res.policy; - that.file_name = res.key; - that.credential = res.credential; - that.x_amz_date = res.x_amz_date; - that.surl = res.siteUrl; - that.callbackKey = res.callBackKey; - }else if(uploadConfig.saveType == "upyun"){ - var putPolicy = that.token; - that.token = res.token; - that.policy = res.policy; - }else if(uploadConfig.saveType == "remote"){ - var putPolicy = that.token; - that.policy = res.uptoken; - }else{ - var segments = that.token.split(":"); - var putPolicy = that.parseJSON(that.URLSafeBase64Decode(segments[2])); - if (!that.tokenMap) { - that.tokenMap = {}; - } - var getTimestamp = function(time) { - return Math.ceil(time.getTime()/1000); - }; - var serverTime = getTimestamp(new Date(ajax.getResponseHeader("date"))); - var clientTime = getTimestamp(new Date()); - that.tokenInfo = { - serverDelay: clientTime - serverTime, - deadline: putPolicy.deadline, - isExpired: function() { - var leftTime = this.deadline - getTimestamp(new Date()) + this.serverDelay; - return leftTime < 600; + ajax.onload = function (e){ + if (ajax.status === 200) { + var res = that.parseJSON(ajax.responseText); + that.token = res.uptoken; + if (uploadConfig.saveType == "oss"){ + var putPolicy = that.token; + that.sign = res.sign; + that.access = res.id; + that.file_name = res.key; + that.callback = res.callback; + }else if(uploadConfig.saveType == "s3"){ + var putPolicy = that.token; + that.sign = res.sign; + that.policy = res.policy; + that.file_name = res.key; + that.credential = res.credential; + that.x_amz_date = res.x_amz_date; + that.surl = res.siteUrl; + that.callbackKey = res.callBackKey; + }else if(uploadConfig.saveType == "upyun"){ + var putPolicy = that.token; + that.token = res.token; + that.policy = res.policy; + }else if(uploadConfig.saveType == "remote"){ + var putPolicy = that.token; + that.policy = res.uptoken; + }else{ + var segments = that.token.split(":"); + var putPolicy = that.parseJSON(that.URLSafeBase64Decode(segments[2])); + if (!that.tokenMap) { + that.tokenMap = {}; } - }; - logger.debug("get token info: ", that.tokenInfo); + var getTimestamp = function(time) { + return Math.ceil(time.getTime()/1000); + }; + var serverTime = getTimestamp(new Date(ajax.getResponseHeader("date"))); + var clientTime = getTimestamp(new Date()); + that.tokenInfo = { + serverDelay: clientTime - serverTime, + deadline: putPolicy.deadline, + isExpired: function() { + var leftTime = this.deadline - getTimestamp(new Date()) + this.serverDelay; + return leftTime < 600; + } + }; + logger.debug("get token info: ", that.tokenInfo); + } + + logger.debug("get new uptoken: ", that.token); + + } else { + logger.error("get uptoken error: ", ajax.responseText); } - - logger.debug("get new uptoken: ", that.token); - - } else { + } + ajax.onerror = function (e){ logger.error("get uptoken error: ", ajax.responseText); } + } else if (op.uptoken_func) { logger.debug("get uptoken from uptoken_func"); that.token = op.uptoken_func(file);