<?php
namespace pub\controller;
use source\Controller;
set_time_limit(0);
class Upload extends Controller{
	/* 文件上传 */
	/**
     * 文件上传
     * @param  array  $files   要上传的文件列表（通常是$_FILES数组）
     * @param  array  $setting 文件上传配置
     * @param  string $driver  上传驱动名称
     * @param  array  $config  上传驱动配置
     * @return array           文件上传成功后的信息
     */
    public function upload(){
		//文件名
		$file_name=empty($_REQUEST['html5md5'])?md5_file($_FILES["file"]["tmp_name"]):$_REQUEST['html5md5'];
		//文件夹
		$folder="/Uploads/".date('Ym').'/'.$file_name{0}.$file_name{1}.'/'.$file_name{2}.$file_name{3}.'/';
		if(!is_dir(ROOT.$folder)){
			mkdirs(ROOT.$folder);	
		}
		//文件类型
		$file_exts=".".pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
		$file_url=$folder.$file_name.$file_exts;
		
		$re=move_uploaded_file($_FILES["file"]["tmp_name"], ROOT.$file_url);
		
		if($re){
			$m=M('picture');
			$data=array(
				'name'=>pathinfo($_FILES["file"]["name"], PATHINFO_FILENAME),
				'url'=>$file_url,
				'path'=>$file_url,
				'md5'=>$file_name
			);
			$m->create($data);
			$id=$m->add();
			$data['id']=$id;
			$this->ajaxReturn($data);
		}
    }
	

	
	public function upload_one($binary=false){
		if($binary){
			//文件名
			$data=file_get_contents('php://input');
			$file_name=empty($_REQUEST['html5md5'])?md5($data):$_REQUEST['html5md5'];
			 //文件夹
			$folder="/Uploads/".date('Ym').'/'.$file_name{0}.$file_name{1}.'/'.$file_name{2}.$file_name{3}.'/';
			if(!is_dir(ROOT.$folder)){
				mkdirs(ROOT.$folder);	
			}
			//文件类型
			$file_exts=".".pathinfo($_GET["name"], PATHINFO_EXTENSION);
			$file_url=$folder.$file_name.$file_exts;
	
			$re=file_put_contents(ROOT.$file_url,$data);
		}else if(isset($_REQUEST['wangeditor'])){
			//文件名
			$file_name=empty($_REQUEST['html5md5'])?md5_file($_FILES["wangEditorMobileFile"]["tmp_name"]):$_REQUEST['html5md5'];
			//文件夹
			$folder="/Uploads/".date('Ym').'/'.$file_name{0}.$file_name{1}.'/'.$file_name{2}.$file_name{3}.'/';
			if(!is_dir(ROOT.$folder)){
				mkdirs(ROOT.$folder);	
			}
			//文件类型
			switch ($_FILES["wangEditorMobileFile"]["type"]) {
				case 'image/jpeg':
					$file_exts='.jpg';
					break;
				case 'image/png':
					$file_exts='.png';
					break;
				case 'image/gif':
					$file_exts='.gif';
					break;
			}
			$file_url=$folder.$file_name.$file_exts;
			
			
			$re=move_uploaded_file($_FILES["wangEditorMobileFile"]["tmp_name"], ROOT.$file_url);	
			ob_clean();
		    echo $file_url;
			die;
		}else{
			//文件名
			$file_name=empty($_REQUEST['html5md5'])?md5_file($_FILES["file"]["tmp_name"]):$_REQUEST['html5md5'];
			//文件夹
			$folder="/Uploads/".date('Ym').'/'.$file_name{0}.$file_name{1}.'/'.$file_name{2}.$file_name{3}.'/';
			if(!is_dir(ROOT.$folder)){
				mkdirs(ROOT.$folder);	
			}
			//文件类型
			$file_exts=".".pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
			$file_url=$folder.$file_name.$file_exts;
			
			$re=move_uploaded_file($_FILES["file"]["tmp_name"], ROOT.$file_url);
		}
		if($re){
			$data=array(
				'url'=>$file_url
			);
			$this->ajaxReturn($data);
		}
    }

	public function upload_kindeditor(){
		//文件名
		$file_name=empty($_REQUEST['html5md5'])?md5_file($_FILES["file"]["tmp_name"]):$_REQUEST['html5md5'];
		//文件夹
		$folder="/Uploads/".date('Ym').'/'.$file_name{0}.$file_name{1}.'/'.$file_name{2}.$file_name{3}.'/';
		if(!is_dir(ROOT.$folder)){
			mkdirs(ROOT.$folder);	
		}
		//文件类型
		$file_exts=".".pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
		$file_url=$folder.$file_name.$file_exts;
		
		$re=move_uploaded_file($_FILES["file"]["tmp_name"], ROOT.$file_url);
		if($re){
			$data=array(
				'error' => 0,
				'url'=>$file_url
			);
			$this->ajaxReturn($data);
		}
    }
	
	
	public function upload_wx($access_token,$media_id,$api_url='http://api.weixin.qq.com/cgi-bin/media/get'){
		$param=array(
			'access_token'=>$access_token,
			'media_id'=>$media_id
		);
		$data=wd_http($api_url,$param);
		$url = $api_url."?access_token={$access_token}&media_id={$media_id}";
		$headerstr  = implode(",",get_headers($url));
		preg_match('/"(.*)"/',$headerstr,$filename);
		$filename=$filename[1];
		//文件名
		$file_name=md5($data);
		//文件夹
		$folder="/Uploads/".date('Ym').'/'.$file_name{0}.$file_name{1}.'/'.$file_name{2}.$file_name{3}.'/';
		if(!is_dir(ROOT.$folder)){
			mkdirs(ROOT.$folder);	
		}
		//文件类型
		$file_exts=".".pathinfo($filename, PATHINFO_EXTENSION);
		$file_url=$folder.$file_name.$file_exts;
		
		//上传到七牛
		$url = $api_url."?access_token=".$access_token."&media_id=".$media_id;
		$qiniu=new \Wd\Qiniu();
		$re=$qiniu->fetch(array(
			'url'=>$url,
			'key'=>substr($file_url, 1)
		));
		
		
		//写入本地服务器
		$re=file_put_contents(ROOT.$file_url,$data);
		
		
		if($re){
			$m=D('pub/Picture');
			$data=array(
				'name'=>I('name',''),
				'path'=>$file_url
			);
			$m->create($data);
			$id=$m->add();
			$data['id']=$id;
			//$data['water']=$m->where(array('id'=>$id))->getField('water');
			$this->ajaxReturn($data);
		}
		

    }
	
	//验证图片md5，实现秒传
	function md5_check(){
		$m = M('Picture');
		$html5md5=I('html5md5','');
		$re=$m->where("md5='{$html5md5}'")->find();
		$this->ajaxReturn($re);
	}
	
	//排序
	function disorder(){
		$redata=array(
			'status'=>1,
			'url'=>'',
			'info'=>'请输入数字'
		);
		$m = D('Admin/Picture');
		$id=I('id');
		$disorder=I('disorder',0);
		if(!is_numeric($disorder)){
			$this->ajaxReturn($redata);
		}
		$data=array(
			'id'=>$id,
			'disorder'=>$disorder
		);
		$re=$m->save($data);
		//$redata['status']=$re;
		//$this->ajaxReturn($redata);
	}
	
	//名称
	function name(){
		$redata=array(
			'status'=>1,
			'url'=>'',
			'info'=>'系统繁忙，请重试'
		);
		$m = D('Admin/Picture');
		$id=I('id');
		$name=I('name','');
		$data=array(
			'id'=>$id,
			'name'=>$name
		);
		$re=$m->save($data);
		//$redata['status']=$re;
		//$this->ajaxReturn($redata);
	}
	//删除
	function del(){
		$redata=array(
			'status'=>0,
			'url'=>'',
			'info'=>'系统繁忙，请重试'
		);
		$m = D('Admin/Picture');
		$id=I('id');
		$re=$m->delete($id);
		$redata['status']=$re;
		$this->ajaxReturn($redata);
	}
}
?>