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);
} 最佳答案