Template.php 8.27 KB
<?php
namespace app\admin\controller;
use think\facade\Env;
class Template extends Common{
    protected $filepath,$publicpath,$viewSuffix;
    function initialize()
    {
        parent::initialize();
        $viewPath = config('template.view_path');
        $this->viewSuffix = config('template.view_suffix');
		$viewPath = $viewPath ? $viewPath : 'view';
        $this->filepath = Env::get('app_path').strtolower(config('default_module')).'/'.$viewPath.'/';
        $this->publicpath =  'static/home/';
		$this->assign ( 'viewSuffix',$this->viewSuffix );
    }

    public function index(){
        //$path = $this->publicpath.'images/'.input('folder').'/';

        if($_SERVER['REMOTE_ADDR']=="127.0.0.1")
            $path = "/Applications/XAMPP/xamppfiles/htdocs/dashboard/images/";
        else
            $path = "/alidata/www/dc-api/public/tables/syntemp/";

        $uppath = explode('/',input('folder'));
        $leve = count($uppath)-1;
        unset($uppath[$leve]);
        if($leve>1){
            unset($uppath[$leve-1]);
            $uppath = implode('/',$uppath).'/';
        }else{
            $uppath = '';
        }
        $this->assign ( 'leve',$leve);
        $this->assign ( 'uppath',$uppath);
        $files = glob($path.'*');
        $folders=array();
        foreach($files as $key => $file) {
            $filename = basename($file);
            if(is_dir($file)){
                $folders[$key]['filename'] = $filename;
                $folders[$key]['filepath'] = $file;
                $folders[$key]['ext'] = 'folder';
            }else{
                $templates[$key]['filename'] = $filename;
                $templates[$key]['filepath'] = $file;
                $templates[$key]['ext'] = strtolower(substr($filename,strrpos($filename, '.')-strlen($filename)+1));
                if(!in_array($templates[$key]['ext'],array('zip','gif','jpg','png','bmp'))) $templates[$key]['favicon.ico'] =1;
            }
        }
        $this->assign ( 'title','二维码管理' );
        $this->assign ( 'path',$path);
        $this->assign ( 'folders',$folders );
        $this->assign ( 'files',$templates );
        return $this->fetch();
    }

    public function PackzipDownload(){

        if($_SERVER['REMOTE_ADDR']=="127.0.0.1")
            $path = "/Applications/XAMPP/xamppfiles/htdocs/dashboard/images/";
        else
            $path = "/alidata/www/dc-api/public/tables/syntemp/";

        $file=$path.input('post.filename');
        //首先判断是图片还是路径
        if($this->isImage($file)!==false){
            //是图片
            $zip = new \ZipArchive;
            //压缩文件名
            $filename = 'uploads/package/download.zip';

            //新建zip压缩包
            $obj = $zip->open($filename,\ZIPARCHIVE::OVERWRITE | \ZIPARCHIVE::CREATE);
            $newfile = trim(strrchr($file, '/'),'/');
            //把图片一张一张加进去压缩
            $zip->addFile($file,'/download/'.$newfile);
            //打包zip
            $rs = $zip->close();
        }else{
            //目录
            $zip = new \ZipArchive;
            //压缩文件名
            $filename = 'uploads/package/download.zip';
            //新建zip压缩包
            $obj = $zip->open($filename,\ZIPARCHIVE::OVERWRITE | \ZIPARCHIVE::CREATE);
            //把图片一张一张加进去压缩
            $files = glob($file.'/*');
            foreach($files as $key=>$val){
                $newfile = trim(strrchr($val, '/'),'/');
                $zip->addFile($val,'/download/'.$newfile);
            }

            //打包zip
            $rs = $zip->close();
        }
        if($rs==true){
            $result['code']=1;
            $result['msg']="打包好了!";
            return $result;
        }
        return $rs;
    }

    /**
     * 判断所传文件是否是图片
     */
    public function isImage($filename)
    {
        $types = '.gif|.jpeg|.png|.bmp'; //定义检查的图片类型
        if(file_exists($filename))
        {
            if (($info = @getimagesize($filename)))
                    return 0;
            $ext = image_type_to_extension($info['2']);
            return stripos($types,$ext);
        }
        else
        {
            return false;
        }
    }

    /**
     * 二维码包下载页面
     */
    public function package(){
        $path = 'uploads/package/'.input('folder').'/';

        $uppath = explode('/',input('folder'));
        $leve = count($uppath)-1;
        unset($uppath[$leve]);
        if($leve>1){
            unset($uppath[$leve-1]);
            $uppath = implode('/',$uppath).'/';
        }else{
            $uppath = '';
        }
        $this->assign ( 'leve',$leve);
        $this->assign ( 'uppath',$uppath);
        $files = glob($path.'*');
        $folders=array();
        foreach($files as $key => $file) {
            $filename = basename($file);
            if(is_dir($file)){
                $folders[$key]['filename'] = $filename;
                $folders[$key]['filepath'] = $file;
                $folders[$key]['ext'] = 'folder';
            }else{
                $templates[$key]['filename'] = $filename;
                $templates[$key]['filepath'] = $file;
                $templates[$key]['ext'] = strtolower(substr($filename,strrpos($filename, '.')-strlen($filename)+1));
                if(!in_array($templates[$key]['ext'],array('zip','gif','jpg','png','bmp'))) $templates[$key]['favicon.ico'] =1;
            }
        }
        $this->assign ( 'title','二维码管理' );
        $this->assign ( 'path',$path);
        $this->assign ( 'folders',$folders );
        $this->assign ( 'files',$templates );
        return $this->fetch();
    }

    /**
     * 二维码生成
     */
    public function createcode(){
        if(request()->isPost()){
            $num = intval(input('post.num'));
            $flag = intval(input('post.flag'));
            if($num<=0){
                $result['msg'] = '请输入正整数!';
                $result['code'] = 0;
                return $result;
            }
            if($flag<0 || $flag >2){
                $result['msg'] = '请输入1或者2或者不输入!';
                $result['code'] = 0;
                return $result;
            }
            //调用API
            //http://www.dc-api.com/public/index.php?service=App.Tables.BatchQRcode     测试环境
            //http://xt04.colorcun.com/?service=App.Tables.BatchQRcode                  正式环境
            $param=array(
                'num'   =>$num,
                'flag'  =>$flag,
            );
            $url = "http://xt04.colorcun.com/?service=App.Tables.BatchQRcode";
            $status = json_decode($this->requesthttp($url,$param),true);
            if($status['ret']==200){
                $result['msg'] = '二维码已生成!';
                $result['code'] = 1;
                return $result;
            }else{
                $result['msg'] = $status['msg'];
                $result['code'] = $status['ret'];
                return $status;
            }
        }
        $this->assign ( 'title','二维码生成' );
        return $this->fetch();
    }

    /**
     * post请求
     * @param $url
     * @param $param
     * @param bool $post_file
     * @return bool|mixed
     */
    public function requesthttp($url,$param,$post_file=false){
        $oCurl = curl_init();
        if(stripos($url,"https://")!==FALSE){
            curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
        }
        if (is_string($param) || $post_file) {
            $strPOST = $param;
        } else{
            $aPOST = array();
            foreach($param as $key=>$val){
                $aPOST[] = $key."=".urlencode($val);
            }
            $strPOST =  join("&", $aPOST);
        }
        curl_setopt($oCurl, CURLOPT_URL, $url);
        curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt($oCurl, CURLOPT_POST,true);
        curl_setopt($oCurl, CURLOPT_POSTFIELDS,$strPOST);
        $sContent = curl_exec($oCurl);
        $aStatus = curl_getinfo($oCurl);
        curl_close($oCurl);
        //dump(json_decode($sContent));
        if(intval($aStatus["http_code"])==200){
            return $sContent;
        }else{
            return false;
        }
    }

}