ThinkPHP生成多张缩略图

ThinkPHP生成多张缩略图

import('ORG.Net.UploadFile');
$upload = new UploadFile();// 实例化上传类
$upload->maxSize  = 3145728 ;// 设置附件上传大小
$upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->savePath =  './Resource/upload/index/';// 设置附件上传目录,这里的.是相对于入口文件的
$upload->saveRule = 'time'; //按照时间来保存图片
$upload->thumb = true;//是否生成缩略图
$upload->thumbPrefix = 'max_,min_';//设置前缀
$upload->thumbMaxWidth = '940,700';//最大宽度
$upload->thumbMaxHeight = '400,300';//最大高度 
$upload->thumbRemoveOrigin = true; //生成后删除原图片
if(!$upload->upload()) {// 上传错误提示错误信息
	$this->error($upload->getErrorMsg());
}else{// 上传成功 获取上传文件信息
	$info =  $upload->getUploadFileInfo();
}
如果是要生成多张,就可以在下面的设置用,分隔
$upload->thumbPrefix = 'max_,min_';//设置前缀
$upload->thumbMaxWidth = '940,700';//最大宽度
$upload->thumbMaxHeight = '400,300';//最大高度 

以上代码就是生成两张缩略图的写法(940*400, 700*300)


还有一点要注意的是:ThinkPHP3.1.2的上传图片生成缩略图是按照缩放比例要缩放的,如果想生成固定格式的,我自己的做法是,改一下ThinkPHP图片类

以下是我的做法:

找到ThinkPHP/Extend/Library/ORG/Util/Image.class.php并修改生成缩略图方法中的一段代码

$scale = min($maxWidth / $srcWidth, $maxHeight / $srcHeight); // 计算缩放比例
            if ($scale >= 1) {
                // 超过原图大小不再缩略
                $width = $srcWidth;
                $height = $srcHeight;
            } else {
                // 缩略图尺寸
                //$width = (int) ($srcWidth * $scale);原来的
                //$height = (int) ($srcHeight * $scale);
                
                $width = (int) ($maxWidth); //我修改的
                $height = (int) ($maxHeight);
            }


猜你喜欢

转载自blog.csdn.net/yozheng/article/details/43151539