ThinkPHP示例之:缩略图生成

ThinkPHP示例之:缩略图生成

本示例演示了如何使用内置的文件上传类库进行附件上传操作,并自动生成缩略图,点击图片后显示带水印的图片。
 
 
上传允许文件类型:gif png jpg 图像文件,分别生产2张缩略图。并且把原图删掉,点击稍大的图将会在新窗口中显示带水印的图片
 
 
示例源码
控制器IndexAction类
<?php

class IndexAction extends Action {

    public function 
index() {
        
$Photo M('Photo');
        
$list $Photo->order('create_time desc')->limit(2)->findAll();
        
$this->assign('list'$list);
        
$this->display();
    }

    public function 
upload() {
        if (!empty(
$_FILES)) {
            
//如果有文件上传 上传附件
            
$this->_upload();
            
//$this->forward();
        
}
    }

    
// 文件上传
    
protected function _upload() {
        
import("@.ORG.UploadFile");
        
$upload = new UploadFile();
        
//设置上传文件大小
        
$upload->maxSize 3292200;
        
//设置上传文件类型
        
$upload->allowExts explode(',''jpg,gif,png,jpeg');
        
//设置附件上传目录
        
$upload->savePath '/Examples/File/Tpl/default/Public/Uploads/';
        
//设置需要生成缩略图,仅对图像文件有效
        
$upload->thumb true;
        
//设置需要生成缩略图的文件后缀
        
$upload->thumbPrefix 'm_,s_';  //生产2张缩略图
        //设置缩略图最大宽度
        
$upload->thumbMaxWidth '400,100';
        
//设置缩略图最大高度
        
$upload->thumbMaxHeight '400,100';
        
//设置上传文件规则
        
$upload->saveRule uniqid;
        
//删除原图
        
$upload->thumbRemoveOrigin true;
        if (!
$upload->upload()) {
            
//捕获上传异常
            
$this->error($upload->getErrorMsg());
        } else {
            
//取得成功上传的文件信息
            
$uploadList $upload->getUploadFileInfo();
            
import("@.ORG.Image");
            
//给m_缩略图添加水印, Image::water('原文件名','水印图片地址')
            
Image::water($uploadList[0]['savepath'].'m_'.$uploadList[0]['savename'], '/Examples/File/Tpl/default/Public/Images/logo2.png');
            
$_POST['image'] = $uploadList[0]['savename'];
        }
        
$model M('Photo');
        
//保存当前数据对象
        
$data['image'] = $_POST['image'];
        
$data['create_time'] = time();
        
$list $model->add($data);
        if (
$list !== false) {
            
$this->success('上传图片成功!');
        } else {
            
$this->error('上传图片失败!');
        }
    }



}

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值