ThinkPHP 缩略图生成方法

模板页

<p>
				<label>缩略图:</label>
				<input type="file" name="thumb">
			</p>

控制器

public function add()
		{
			if(IS_POST)
			{
				$post = I('post.');
				
				$model = D('Knowledge');
				
				$result = $model->addData($post,$_FILES['thumb']);
				
				if($result)
				{
					$this->success('添加成功',U('showList'),3);
				}else{
					$this->error('添加失败');
				}
			}else{
				$this->display();
			}
			
		}

模型

public function addData($post,$file)
		{
			if(!$file['error'])
			{
				$cfg = array('rootPath' => WORKING_PATH . UPLOAD_ROOT_PATH);
				#使用UP类先上传内容
				$upload = new \Think\Upload($cfg);
				
				$info = $upload->uploadOne($file);
				
				if($info)
				{
					$post['picture'] = UPLOAD_ROOT_PATH . $info['savepath'] . $info['savename'];
					
					#缩略图制作
					#缩略图类采用的是$this方式处理数据,所以支持连续操作
					#实例化类
					$image = new \Think\Image();
					#打开图片,传递图片路径
					$image->open(WORKING_PATH . $post['picture']);
					#制作等比缩放的缩略图
					$image->thumb(100,100);
					#保存图片,传递保存完整路径(目录+文件名)
					$image->save(WORKING_PATH . UPLOAD_ROOT_PATH . $info['savepath'] . 'thumb_' . $info['savename']);
					## 到上面缩略图上传完成
					#补全thumb字段
					$post['thumb'] = UPLOAD_ROOT_PATH . $info['savepath'] . 'thumb_' . $info['savename'];
				}				

			}
			$post['addtime'] = time();
				
			return $this->add($post);
		}
index.php中路径定义
在根目录index.php入口文件中定义上传路径常量
#定义工作路径
define('WORKING_PATH',str_replace('\\','/',__DIR__));
#定义上传根目录
define('UPLOAD_ROOT_PATH','/public/Upload/');

评论

大侠名号:   验证码: 点击我更换图片  

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND