使用thinkphp生成缩略图及显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
首先了解父类image.class.php(thinkphp/library/think/image.class.php)中的一些函数
1:open() 打开被处理的图片
2:thumb() 生成缩略图 默认1等比缩放 (其中2,3,4,5,6代表的含义参见父类文件image.class.php)
3:save() 缩略图到服务器
生成缩略图步骤分以下四步
* 1.实例化
* 2.打开图片open()
* 3.生成缩略图thumb() 默认等比缩放
* 4.保存save()
控制器代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//大图路径(此处大图路径可参考上篇 “使用thinkphp实现附件上传”的上传路径)
$bigimg_path = $upload ->rootpath. $file_info [ 'savepath' ]. $file_info [ 'savename' ];
//小图路径
$smallimg_path = $upload ->rootpath. $file_info [ 'savepath' ]. 'small_' . $file_info [ 'savename' ];
$img = new \think\image(); //实例化
$img ->open( $bigimg_path ); //打开被处理的图片
$img ->thumb(100,100); //制作缩略图(100*100)
$img ->save( $smallimg_path ); //保存缩略图到服务器
//把上传好的附件及缩略图存到数据库
$_post [ 'goods_big_img' ]= $bigimg_path ;
$_post [ 'goods_small_img' ]= $smallimg_path ;
|
入口文件设置常量
为前台显示缩略图路径方便,在入口文件index.php设置常量,表示站点路径,和数据库存放的图片路径拼接
define('site_url', 'http://www.tp.com/tp/shop/');
前台显示大图及缩略图
1
2
3
4
5
6
|
<td><!-- 大图 -->
<img src= "<{$smarty.const.site_url}><{$v.goods_big_img}>" height= "60" width= "60" >
</td>
<td><!-- 小图 -->
<img src= "<{$smarty.const.site_url}><{$v.goods_small_img}>" height= "40" width= "40" >
</td>
|
结果
数据库里存放路径
图片
前台显示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。