裁剪头像怎么没办法保存子目录

浏览:471 发布日期:2015/10/12 分类:求助交流
Config.php<?php
return array(
    //图片上传配置
    'AVATAR_UPLOAD_CONFIG' => array(
        'mimes'         =>  array(), //允许上传的文件MiMe类型
        'maxSize'       =>  0, //上传的文件大小限制 (0-不做限制)
        'exts'          =>  array('jpg','png','gif'), //允许上传的文件后缀
        'autoSub'       =>  false, //自动子目录保存文件
        /*'subName'       =>  array('date', 'Y-m-d'),*/ //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
        'subName' => 'make_avatar_dir',
        'rootPath'      =>  './Avatar/', //保存根路径

        /*'saveName'      =>  array('get_avatar_name', ''),*/ //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
        'saveExt'       =>  'jpg', //文件保存后缀,空则使用原后缀
        'replace'       =>  true, //存在同名是否覆盖
        'hash'          =>  true, //是否生成hash编码
        'callback'      =>  false, //检测文件是否存在回调,如果存在返回文件信息数组
        'driver'        =>  'Local', // 文件上传驱动
        'driverConfig'  =>  array(), // 上传驱动配置
    ),
    'AVATAR_CROP_CONFIG' => array(
        'mimes'         =>  array(), //允许上传的文件MiMe类型
        'maxSize'       =>  0, //上传的文件大小限制 (0-不做限制)
        'exts'          =>  array('jpg','png','gif'), //允许上传的文件后缀
        'autoSub'       =>  true, //自动子目录保存文件
        /*'subName'       =>  array('date', 'Y-m-d'),*/ //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
        'subName' => 'make_avatar_dir',
        'rootPath'      =>  './Avatar/', //保存根路径
        /*'saveName'      =>  array('get_avatar_name', ''),*/ //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
        'saveExt'       =>  'jpg', //文件保存后缀,空则使用原后缀
        'replace'       =>  true, //存在同名是否覆盖
        'hash'          =>  true, //是否生成hash编码
        'callback'      =>  false, //检测文件是否存在回调,如果存在返回文件信息数组
        'driver'        =>  'Local', // 文件上传驱动
        'driverConfig'  =>  array(), // 上传驱动配置
    ),
);
//上传头像
    public function uploadImg($uid){
        $avatar_upload = new \Think\Upload(C('AVATAR_UPLOAD_CONFIG'));
        /*$avatar_upload = new Upload(C('AVATAR_UPLOAD_CONFIG'));*/    // 实例化上传类
        $avatar_upload -> saveName= 'temp';
        //头像目录地址
        $path = './Avatar/';
        if(!$uppath=$avatar_upload->upload()) {                        // 上传错误提示错误信息
            $this->ajaxReturn(array('status'=>0,'info'=>$upload->getErrorMsg()));
        }else{                                            // 上传成功 获取上传文件信息
            $temp_size = getimagesize($path.'temp.jpg');
            if($temp_size[0] < 100 || $temp_size[1] < 100){//判断宽和高是否符合头像要求
                $this->ajaxReturn(array('status'=>0,'info'=>'图片宽或高不得小于100px!'));
            }
            $this->ajaxReturn(array('status'=>1,'ppath'=>__ROOT__.'/Avatar/'.'temp.jpg'));
        }
    }


//裁剪并保存用户头像
    public function cropImg($uid){
        $upload = new \Think\Upload(C('AVATAR_CROP_CONFIG'));
        /*$upload = new Upload(C('AVATAR_UPLOAD_CONFIG'));*/    // 实例化上传类
        $upload -> saveName= $uid.'_temp';
        $upload->autoSub=true;
        
        //图片裁剪数据
        $params = I('post.');                        //裁剪参数
        if(!isset($params) && empty($params)){
            $this->error('参数错误!');
        }

        print_r($params );
        //头像目录地址
        $path = './Avatar/';
        //要保存的图片
        $real_path = $path.$uid.'_avatar.jpg';
        //临时图片地址
        $pic_path = $path.'temp.jpg';
        //实例化裁剪类
        $Think_img=new \Think\Image(); 
        /*$Think_img = new ThinkImage(THINKIMAGE_GD);*/
        //裁剪原图得到选中区域
        $upload->savePath  =  $real_path; //保存路径
        print_r($path);
        $Think_img->open($pic_path)->crop($params['w'],$params['h'],$params['x'],$params['y'])->save($real_path);
        //生成缩略图
        
/*        $Think_img->open($real_path)->thumb(300,300, 1)->save($path.'avatar_100.jpg');
        $Think_img->open($real_path)->thumb(150,150, 1)->save($path.'avatar_60.jpg');
        $Think_img->open($real_path)->thumb(80,80, 1)->save($path.'avatar_30.jpg');*/
        $Think_img->open($real_path)->thumb(300,300, 1)->save($path.$this->save_avatar_file($uid,'big'));
        $Think_img->open($real_path)->thumb(150,150, 1)->save($path.$this->save_avatar_file($uid,'middle'));
        $Think_img->open($real_path)->thumb(80,80, 1)->save($path.$this->save_avatar_file($uid,'small'));
        $this->success('上传头像成功','',10);
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>