thinkphp3.2.x版本中图片上传缩略图的解决方案
来源:互联网 发布:淘宝的一元拍卖代理 编辑:程序博客网 时间:2024/05/16 11:09
调用方式很简单 get_sc($cover_id,[$width=180,$height=auto,$cut])
@param $cover_id 图片ID___
@param $width 宽度___
@param $height 高___
@param $cut 是否切割 默认不切割___
直接返回新图片的url
可以替换get_cover($cover_id,'path');
调用的第三方类库,请到这里类库下载
@param $cover_id 图片ID___
@param $width 宽度___
@param $height 高___
@param $cut 是否切割 默认不切割___
直接返回新图片的url
可以替换get_cover($cover_id,'path');
get_cover里做了简单的默认图片判断,大家可以自己改一下。
/** * 获取缩略图 * @param unknown_type $filename 原图路劲、url * @param unknown_type $width 宽度 * @param unknown_type $height 高 * @param unknown_type $cut 是否切割 默认不切割 * @return string */function getThumbImage($filename, $width = 100, $height = 'auto',$cut=false, $replace = false){ define('UPLOAD_URL', ''); define('UPLOAD_PATH', ''); $filename = str_ireplace(UPLOAD_URL, '', $filename); //将URL转化为本地地址 $info = pathinfo($filename); $oldFile = $info['dirname'] . DIRECTORY_SEPARATOR . $info['filename'] . '.' . $info['extension']; $thumbFile = $info['dirname'] . DIRECTORY_SEPARATOR . $info['filename'] . '_' . $width . '_' . $height . '.' . $info['extension']; $oldFile = str_replace('\\', '/', $oldFile); $thumbFile = str_replace('\\', '/', $thumbFile); $filename = ltrim($filename, '/'); $oldFile = ltrim($oldFile, '/'); $thumbFile = ltrim($thumbFile, '/'); //原图不存在直接返回 if (!file_exists(UPLOAD_PATH . $oldFile)) { @unlink(UPLOAD_PATH . $thumbFile); $info['src'] = $oldFile; $info['width'] = intval($width); $info['height'] = intval($height); return $info; //缩图已存在并且 replace替换为false } elseif (file_exists(UPLOAD_PATH . $thumbFile) && !$replace) { $imageinfo = getimagesize(UPLOAD_PATH . $thumbFile); //dump($imageinfo);exit; $info['src'] = $thumbFile; $info['width'] = intval($imageinfo[0]); $info['height'] = intval($imageinfo[1]); return $info; //执行缩图操作 } else { $oldimageinfo = getimagesize(UPLOAD_PATH . $oldFile); $old_image_width = intval($oldimageinfo[0]); $old_image_height = intval($oldimageinfo[1]); if ($old_image_width <= $width && $old_image_height <= $height) { @unlink(UPLOAD_PATH . $thumbFile); @copy(UPLOAD_PATH . $oldFile, UPLOAD_PATH . $thumbFile); $info['src'] = $thumbFile; $info['width'] = $old_image_width; $info['height'] = $old_image_height; return $info; } else { //生成缩略图 // tsload( ADDON_PATH.'/library/Image.class.php' ); // if($cut){ // Image::cut(UPLOAD_PATH.$filename, UPLOAD_PATH.$thumbFile, $width, $height); // }else{ // Image::thumb(UPLOAD_PATH.$filename, UPLOAD_PATH.$thumbFile, '', $width, $height); // } //生成缩略图 - 更好的方法 if ($height == "auto") $height = 0; //import('phpthumb.PhpThumbFactory'); require_once('ThinkPHP\Library\Vendor\phpthumb\PhpThumbFactory.class.php'); $thumb = PhpThumbFactory::create(UPLOAD_PATH . $filename); //dump($thumb);exit; if ($cut) { $thumb->adaptiveResize($width, $height); } else { $thumb->resize($width, $height); } $res = $thumb->save(UPLOAD_PATH . $thumbFile); //缩图失败 if (!$res) { $thumbFile = $oldFile; } $info['width'] = $width; $info['height'] = $height; $info['src'] = $thumbFile; return $info; } }}function get_sc($cover_id, $width = 100, $height = 'auto', $cut = false, $replace = false){ $picture = M('Picture')->where(array('status' => 1))->getById($cover_id); if(empty($picture)) { return 'Public/static/assets/img/nopic.png'; } $attach = getThumbImage($picture['path'], $width, $height, $cut, $replace); return $attach['src'];}
调用的第三方类库,请到这里类库下载
0 0
- thinkphp3.2.x版本中图片上传缩略图的解决方案
- ThinkPhP3.2中图片添加,并生成缩略图
- 【thinkphp3.2.x】thinkphp3.2.x中有关session存储机制的相关文件
- 【thinkphp3.2.x】thinkphp3.2.x中有关redis缓存相关的文件
- 【thinkphp3.2.x】thinkphp3.2.x中有关memcache缓存相关的文件
- 【thinkphp3.2.x】thinkphp3.2.x中有关file文件缓存相关的文件
- 【thinkphp3.x】thinkphp3.x中字段的合法性检测
- 【thinkphp3.x】thinkphp3.x中查询条件的预处理功能
- 【thinkphp3.x】thinkphp3.x中变量的获取和过滤
- 【thinkphp3.x】thinkphp3.x中session方法的使用
- 【thinkphp3.x】thinkphp3.x中cookie方法的使用
- 【thinkphp3.x】thinkphp3.x中连贯操作方法的映射
- 【thinkphp3.x】thinkphp3.x中变量的获取和过滤
- thinkphp3.2.3+uploadify3.2.1 上传图片并生成缩略图 404错误
- .net mvc中上传图片生成缩略图
- thinkphp3.23 文件上传并生产缩略图
- Thinkphp3.2.2+Uploadify文件上传生成缩略图
- 打开CKEditor3.x版本的图片上传功能
- js分页类似淘宝
- ASP获取新增记录ID值的方法
- 和往常一样,妻悄悄走了进来
- 正则替换换行符和把 br 替换成换行符
- 我一笑:怎么突然有这样的兴趣呢,前两年
- thinkphp3.2.x版本中图片上传缩略图的解决方案
- 最近公共祖先LCA问题
- ThinkPHP多表联合查询的常用方法
- udp学习笔记
- 黑马程序员--入学考试第2题
- SpringMVC入门
- cocos2dx 中 Android NDK 加载动态库的问题
- 最常见的的优化手法有哪些?汇总常见的SEO快速优化方式
- 黑马程序员--入学考试第3题