aria2下载请求完成,并且修复一个远程服务端path的bug

This commit is contained in:
HFO4 2018-04-05 17:07:36 +08:00
parent 32ca1132f2
commit 2ade8861c9
4 changed files with 47 additions and 2 deletions

View file

@ -35,6 +35,7 @@ class RemoteDownload extends Controller{
}
$aria2Options = Option::getValues(["aria2"]);
$aria2 = new Aria2($aria2Options);
$downloadStart = $aria2->addUrl(input("post.url"));
}
}

View file

@ -6,9 +6,49 @@ use think\Db;
class Aria2 extends Model{
public function __construct($options){
private $authToken;
private $apiUrl;
private $savePath;
private $saveOptions;
public $reqStatus;
public $reqMsg;
public function __construct($options){
$this->authToken = $options["aria2_token"];
$this->apiUrl = rtrim($options["aria2_rpcurl"],"/")."/";
$this->saveOptions = json_decode($options["aria2_options"],true);
$this->savePath = $options["aria2_tmppath"];
}
public function addUrl($url){
//{"params": ["token:123123132",["https://www.baidu.com/img/baidu_jgylogo3.gif"],{"dir":"../"}], "jsonrpc": "2.0", "id": "qer", "method": "aria2.addUri"}
$reqFileds = [
"params" => ["token:".$this->authToken,[
$url,["dir" => $this->savePath],
]],
"jsonrpc" => "2.0",
"id" => uniqid(),
"method" => "aria2.addUri"
];
$reqFileds["params"][1][1] = array_merge($reqFileds["params"][1][1],$this->saveOptions);
$reqFileds = json_encode($reqFileds,JSON_OBJECT_AS_ARRAY);
$respondData = $this->sendReq($reqFileds);
}
private function sendReq($data){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $this->apiUrl."jsonrpc");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
$this->reqStatus = 0;
$this->reqMsg = "请求失败,".curl_error($curl);
}
curl_close($curl); // 关闭CURL会话
return json_decode($tmpInfo); // 返回数据json格式
}
}

2
public/downloads/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
*
!.gitignore

View file

@ -1501,6 +1501,8 @@ function QiniuJsSDK() {
local_path = '/path/'+that.URLSafeBase64Encode(pathTmp);
}
if(uploadConfig.saveType == "remote"){
pathTmp = file.path;
local_path = that.URLSafeBase64Encode(pathTmp);
var url = qiniuUploadUrl + 'mkfile.php?size=' + file.size +"&key="+ key+"&fname="+ fname +"&path="+local_path;
}else{
var url = qiniuUploadUrl + '/mkfile/' + file.size + key + fname + x_vars_url+local_path;