Template.php 5.47 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/batchPicsyn/";

        $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/batchPicsyn/";

        $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();
        }
        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();
    }
}