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