admin管理员组文章数量:1123011
php的vget方法,ext
/***********************************************
*蓝筹云存储
* 文件: /include/ext_api.php
* 说明: 自定义第三方扩展类
* 作者: Myxf
* 更新: 2019年5月30日
***********************************************/
/**
* 自定义第三方扩展类
*/
class ext_lanzou {
private $username = ""; //蓝筹云的账号
private $password = ""; //蓝筹云的密码
private $token = null;
//初始化,如果token为空就获取token
function __construct(){
if (empty($this->token)) $this->getToken();
}
//上传文件
public function upfile($path){
$back = array();
$_path = realpath($_SERVER['DOCUMENT_ROOT'].$path);
if (!file_exists(realpath($_SERVER['DOCUMENT_ROOT'].$path))){
$back['code'] = 1;
$back['msg'] = "文件不存在或路径错误";
}else{
$file_name = basename($_path);
//由于蓝筹云不允许上传图片,所以改扩展名上传
$ExtArray = array('jpg','png','gif','bmp');
$Ext = $this->getExt($_path);
if (in_array($Ext,$ExtArray)){
$new_path = str_replace(".".$Ext, ".img", $_path);
rename($_path,$new_path);
$_path = $new_path;
}
$postdata = array();
$postdata['task'] = "1";
$postdata['folder_id'] = "-1";
$postdata['id'] = "WU_FILE_0";
$postdata['name'] = basename($_path);
$postdata['type'] = "application/octet-stream";
$postdata['upload_file'] = "@". $_path;
$backdata = $this->vpost(".php",$postdata,array('Cookie: '.$this->token));
$backdata = json_decode($backdata,true);
if (in_array($Ext,$ExtArray)){
//上传完成,将本地文件扩展名修改回来
rename($new_path,str_replace(".img",".".$Ext, $_path));
}
if ($backdata['zt']==1){
$file = array();
$file['id'] = $backdata['text'][0]['id'];
$file['f_id'] = $backdata['text'][0]['f_id'];
$file['name'] = $file_name;
$back['code'] = 0;
$back['msg'] = "文件上传成功";
$back['f_id'] = serialize($file);
$back['path'] = $path;
//先测试下载一次,防止180天没下载自动进入回收站
$this->download($back['f_id']);
}else{
$back['code'] = 1;
$back['msg'] = "文件上传失败";
}
}
return json_encode($back);
}
//获取文件下载地址
public function download($f_id){
$f_id = unserialize($f_id);
$backdata = $this->vget("/".$f_id['f_id']);
$down_ifr = "".$this->strCut($backdata,'" src="','" frameborder');
$down_url = $this->vget($down_ifr);
$_t = $this->strCut($down_url,"= '","';",3);
$_k = $this->strCut($down_url,"= '","';",4);
$backdata = $this->vpost(".php","action=down_process&file_id=".$f_id['id']."&t=".$_t."&k=".$_k."&c=",array('referer: ='.$f_id['id'].'&t='.$_t.'&k='.$_k,'cookie: noads=1','content-type: application/x-www-form-urlencoded'));
$backdata = json_decode($backdata,true);
if ($backdata['zt']==1){
$path = $backdata['dom']."/file/".$backdata['url'];
$path = $this->vget($path,array('Accept: */*','Accept-Encoding: gzip, deflate, br','Accept-Language: zh-CN,zh;q=0.9','Cookie: down_ip=1;'),1);
$path = $this->strCut($path,'Location: ',"\r\n");
$path = str_replace("&b=", "&bb=", $path)."&q=".$f_id['name'];
$back['code'] = 0;
$back['msg'] = "下载链接获取成功";
$back['path'] = $path;
}else{
$back['code'] = 1;
$back['msg'] = "下载链接获取失败";
}
return json_encode($back);
}
//删除文件,传入f_id
public function delfile($f_id){
$f_id = unserialize($f_id);
$backdata = $this->vpost(".php","task=6&file_id=".$f_id['id'],array('Cookie: '.$this->token));
$backdata = json_decode($backdata,true);
if ($backdata['zt']==1){
$back['code'] = 0;
$back['msg'] = "文件删除成功";
}else{
$back['code'] = 1;
$back['msg'] = "文件删除失败";
}
return json_encode($back);
}
//使用账号密码自动登录获取token
private function getToken(){
$backdata = $this->vget(".php?action=login&ref=/mydisk.php");
$formhash = $this->strCut($backdata,'formhash" value="','" />');
$postdata = "action=login&task=login&username=".$this->username."&password=".$this->password."&formhash=".$formhash;
$backdata = $this->vpost(".php",$postdata,"",1);
$this->token = "phpdisk".$this->strCut($backdata,'Set-Cookie: phpdisk','; expires=');
}
//post网络请求
private function vpost($url,$data,$header = "",$head = 0){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, $head);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$tmpInfo = curl_exec($curl);
if (curl_errno($curl)) {
return 'Error';
}
curl_close($curl);
return $tmpInfo;
}
//get网络请求
private function vget($url,$header = "",$head = 0){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, $head);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$tmpInfo = curl_exec($curl);
if (curl_errno($curl)) {
return 'Error';
}
curl_close($curl);
return $tmpInfo;
}
//字符串截取
private function strCut($string,$strstart,$strend,$num = 1){
$v_a=explode($strstart, $string);
$v_a=explode($strend, $v_a[$num]);
return $v_a[0];
}
//获取文件扩展名
private function getExt($file){
return end(explode(".",$file));
}
}
?>
一键复制
编辑
Web IDE
原始数据
按行查看
历史
本文标签: php的vget方法Ext
版权声明:本文标题:php的vget方法,ext 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1687916195a157087.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论