aria2下载失败异常处理

pull/64/head
HFO4 8 years ago
parent 1af411daee
commit ee56919747

@ -18,7 +18,7 @@ return [
// 应用命名空间 // 应用命名空间
'app_namespace' => 'app', 'app_namespace' => 'app',
// 应用调试模式 // 应用调试模式
'app_debug' => false, 'app_debug' => true,
// 应用Trace // 应用Trace
'app_trace' => false, 'app_trace' => false,
// 应用模式状态 // 应用模式状态

@ -85,6 +85,7 @@ class Aria2 extends Model{
"downloadSpeed" => $respondData["result"]["downloadSpeed"], "downloadSpeed" => $respondData["result"]["downloadSpeed"],
"errorMessage" => isset($respondData["result"]["errorMessage"]) ? $respondData["result"]["errorMessage"] : "", "errorMessage" => isset($respondData["result"]["errorMessage"]) ? $respondData["result"]["errorMessage"] : "",
]), ]),
"msg" => isset($respondData["result"]["errorMessage"]) ? $respondData["result"]["errorMessage"] : "",
]); ]);
switch ($respondData["result"]["status"]) { switch ($respondData["result"]["status"]) {
case 'complete': case 'complete':
@ -98,7 +99,7 @@ class Aria2 extends Model{
}else{ }else{
$this->reqStatus = 0; $this->reqStatus = 0;
$this->reqMsg = "空间容量不足"; $this->reqMsg = "空间容量不足";
//取消离线下载 $this->setError($respondData["result"],$downloadInfo,"空间容量不足");
return false; return false;
} }
}else{ }else{
@ -110,7 +111,7 @@ class Aria2 extends Model{
private function setComplete($quenInfo,$sqlData){ private function setComplete($quenInfo,$sqlData){
if($this->policy["policy_type"] != "local"){ if($this->policy["policy_type"] != "local"){
//取消任务 $this->setError($quenInfo,$sqlData,"您当前的上传策略无法使用离线下载");
return false; return false;
} }
$suffixTmp = explode('.', $quenInfo["dir"]); $suffixTmp = explode('.', $quenInfo["dir"]);
@ -123,7 +124,7 @@ class Aria2 extends Model{
} }
if($sufficCheck){ if($sufficCheck){
//取消任务 //取消任务
$this->setError(); $this->setError($quenInfo,$sqlData,"文件类型不被允许");
return false; return false;
} }
if($this->policy['autoname']){ if($this->policy['autoname']){
@ -147,14 +148,53 @@ class Aria2 extends Model{
$addAction = FileManage::addFile($jsonData,$this->policy,$this->uid,$picInfo); $addAction = FileManage::addFile($jsonData,$this->policy,$this->uid,$picInfo);
if(!$addAction[0]){ if(!$addAction[0]){
//取消任务 //取消任务
$this->setError(); $this->setError($quenInfo,$sqlData,$addAction[1]);
return false; return false;
} }
FileManage::storageCheckOut($this->uid,(int)$quenInfo["totalLength"]); FileManage::storageCheckOut($this->uid,(int)$quenInfo["totalLength"]);
} }
private function setError(){ private function setError($quenInfo,$sqlData,$msg,$status="error"){
$this->Remove($sqlData["pid"],$sqlData);
$this->removeDownloadResult($sqlData["pid"],$sqlData);
if(file_exists($quenInfo["files"][0]["path"])){
@unlink($quenInfo["files"][0]["path"]);
@unlink(dirname($quenInfo["files"][0]["path"]));
}
Db::name("download")->where("id",$sqlData["id"])->update([
"msg" => $msg,
"status" => $status,
]);
}
public function Remove($gid,$sqlData){
$reqFileds = [
"params" => ["token:".$this->authToken,$gid],
"jsonrpc" => "2.0",
"id" => uniqid(),
"method" => "aria2.remove"
];
$reqFileds = json_encode($reqFileds,JSON_OBJECT_AS_ARRAY);
$respondData = $this->sendReq($reqFileds);
if(isset($respondData["result"])){
return true;
}
return false;
}
public function removeDownloadResult($gid,$sqlData){
$reqFileds = [
"params" => ["token:".$this->authToken,$gid],
"jsonrpc" => "2.0",
"id" => uniqid(),
"method" => "aria2.removeDownloadResult"
];
$reqFileds = json_encode($reqFileds,JSON_OBJECT_AS_ARRAY);
$respondData = $this->sendReq($reqFileds);
if(isset($respondData["result"])){
return true;
}
return false;
} }
private function storageCheck($quenInfo,$sqlData){ private function storageCheck($quenInfo,$sqlData){

Loading…
Cancel
Save