`
rikugun
  • 浏览: 350981 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

CakePhp phpThumb Compenet

    博客分类:
  • PHP
阅读更多
参照了一下官网的国际友人的一篇帖子修改的

请先将phpthumb的所有文件放在  app/vendors下,如 phpthumb.class.php 文件的路径是
引用
app/vendors/phpThumb/phpthumb.class.php


修改  index.php 加上 ROOT的定义后面加上 ,默认图片上传的路径

if (!defined('PIC_UPLOAD_DIR')) {
    define('PIC_UPLOAD_DIR', ROOT.DS.APP_DIR.DS."upload");
}

然后就可在 controller中调用
var  $components = array('phpThumb');

function someFunction(){

//设置参数
$this->phpThumb->setParams($params);

//生成略缩图
$this->phpThumb->generateThumb($path);

//调试信息
$this->phpThumb->debugMsg;

}





<?php

/**
 * phpThumb 组件 生成略缩图
 *
 * @author rikugun
 */

App::import('vendor','phpThumb',array('file' =>'phpThumb'.DS.'phpthumb.class.php'));
class phpThumbComponent extends Object {


    /**
     *  水印字符
     * @var <string>
     */
    var $wmtStr = 'www.uCoulor.com';
    /**
     *  水印字体大小 1-5
     * @var <int>
     */
    var $wmtFontSize = 5;

    /**
     *  允许生成的源图形mime类型
     * @var <array>
     */
    var $allowed_mime_types = array('image/jpeg','image/pjpeg','image/gif','image/png');
    /**
     *  略缩图生成路径 **必须可写
     * @var <string>
     */
    var $image_location = 'thumb';

    /**
     *  错误输出数组
     * @var <array>
     */
    var $errors = array();
    /**
     *  phpThumb 调试信息
     * @var <array>
     */
    var $debugMsg = array();
    /**
     *  图像默认宽 px
     * @var <int>
     */
    var $width = 300;

    /**
     *  图像默认高 px
     * @var <int>
     */
    var $height = 200;

    /**
     *  图像缩放
     * @var <float>
     */
    var $zoom_crop = 0;
    /**
     *  jpg 输出质量
     * @var <int>
     */
    var $q = 95;

    var $phpThumb;

    function __construct() {
        $this->phpThumb = new phpthumb();
    }


    /**
     *  生成略缩图
     * @param <string> $filename 格式: 20090505/1211412xxx.jpg
     * @return <boolean>
     */
    function generateThumb($filename) {

    //判断源文件是否存在
        if (!file_exists(PIC_UPLOAD_DIR.DS.$filename)) {
            $this->addError('源文件: '.PIC_UPLOAD_DIR.DS.$filename.' 不存在.');
            return false;
        }
        //确认输出目录可写
        if(!is_writable(WWW_ROOT.$this->image_location)) {
            $this->addError('目录: '.WWW_ROOT.$this->image_location.' 不可写.');
            return false;
        }
        $thumbDayDir = basename(dirname($filename));

        //确认日期目录
        if(!is_dir(WWW_ROOT.$this->image_location.DS.$thumbDayDir)) {
            mkdir(WWW_ROOT.$this->image_location.DS.$thumbDayDir,0777,true);
        }

        //转移水印字符
        $sUcoulor = htmlentities(urlencode($this->wmtStr));

        //        $phpThumb = new phpThumb();
        $this->phpThumb->setSourceFilename(PIC_UPLOAD_DIR.DS.$filename);
        $this->phpThumb->setParameter('config_allow_src_above_docroot', true);
        $this->phpThumb->setParameter('w',$this->width);
        $this->phpThumb->setParameter('h',$this->height);
        $this->phpThumb->setParameter('zc',$this->zoom_crop);
        $this->phpThumb->setParameter('q',$this->q);
        //设置水印
        $this->phpThumb->setParameter('fltr', "wmt|www.ucolor.com|{$this->wmtFontSize}|BR|EE3322");


        if($this->phpThumb->GenerateThumbnail()) {
            if(!$this->phpThumb->RenderToFile(WWW_ROOT.$this->image_location.DS.$filename)) {
                $this->addError('无法保存生成图片为: '.$this->image_location.DS.$filename);
            }
        } else {
            $this->addError('无法生成略缩图,请查看debug信息!');
        }
        if(count($this->errors)>0) {
            if(file_exists(WWW_ROOT.$this->image_location.DS.$filename)) {
                unlink(WWW_ROOT.$this->image_location.DS.$filename);
            }
            $this->debugMsg = $this->phpThumb->debugmessages;
            return false;
        } else return true;
    }
    /**
     *  设置phpThumb 参数
     * @param <array> $params 参数
     */
    function setParams($params) {
        foreach ($params as $k=>$v) {
            $this->phpThumb->setParameter($k, $v);
        }
    }
    function addError($msg) {
        $this->errors[] = $msg;
    }
}
?>


0
0
分享到:
评论

相关推荐

    phpThumb:phpThumb CakePHP插件

    用于CakePHP的phpThumb插件 CakePHP插件,带有phpThumb库和用于生成缩略图的帮助器。 如何使用助手 在您的app / plugins文件夹中创建目录“ php_thumb”。 克隆/复制app / plugins / php_thumb文件夹中的插件。 在...

    CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4

    ### CakePHP 3.4 开发手册文档概览 #### CakePHP 一瞥 CakePHP 是一款基于 PHP 的快速开发框架,它强调采用约定优于配置(Convention Over Configuration, CoC)的原则来简化开发过程,使得开发者能够快速构建稳定...

    PHP的框架之CakePHP-CakePHP教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    cakephp php-framework

    There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...

    PHP的框架之CakePHP-CakePHP教程终极教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    cakephp 框架书籍 英文版

    ### CakePHP框架书籍知识点概述 #### 一、Getting Started(开始使用) - **博客教程**:本书籍通过一个博客项目的示例,引导读者逐步了解CakePHP框架的基本用法。这包括了如何设置环境、创建模型(Model)、控制器...

    cakephp-1.2 manual

    《CakePHP 1.2 手册》是针对该版本框架的重要参考资料,旨在帮助开发者深入理解和有效使用 CakePHP 进行Web开发。 CakePHP 是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它简化了Web应用程序的...

    CakePHP 1.2 API 中文文档

    **CakePHP 1.2 API 中文文档** CakePHP 是一个基于MVC(Model-View-Controller)架构的开源PHP框架,它旨在简化Web应用程序的开发,并提高开发效率。 CakePHP 1.2 API 中文文档是针对这个版本的详细技术参考,为...

    cakephp 框架1.3.11版本

    这个压缩包文件包含了有关CakePHP 1.3.11版本的信息,该版本发布于较早的时期,但仍然对理解早期的Web开发流程有所帮助。 首先,我们来详细探讨一下CakePHP框架的关键特性: 1. **MVC架构**:MVC模式是软件工程中...

    cakephp-cakephp-2.0.0-beta-0-g402934f.zip

    标题中的"cakephp-cakephp-2.0.0-beta-0-g402934f.zip"表明这是一个针对CakePHP 2.0.0 beta版本的压缩包,其中可能包含了框架的核心组件、示例代码以及相关的文档资料。 在描述中提到,CakePHP是“借鉴Raid on ...

    cakephp-1.3.21.zip

    《CakePHP 1.3.21:框架详解与应用实践》 CakePHP是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它致力于简化Web应用程序的开发,提供了一套强大的工具和约定,使开发者能够快速构建高质量的网站...

    CakePHP 3.5 开发手册文档 CakePHP Cookbook Documentation Release 3.5/共900页 PDF

    ### CakePHP 3.5 开发手册文档概览与核心知识点解析 #### 一、CakePHP简介 **CakePHP** 是一个用 PHP 编写的快速、简洁的开发框架。它采用了 MVC (Model-View-Controller) 架构模式,旨在简化 Web 应用程序的开发...

    CakePHP使用ajax传值

    CakePHP框架中实现Ajax传值是通过AJAX (Asynchronous JavaScript and XML) 技术与后端的CakePHP控制器进行数据交换的一种方式。通常在Web开发中,Ajax用于创建更为动态和响应快速的用户界面。当用户与页面上的元素...

    CakePHP PHP MVC框架

    1. **路由配置**:CakePHP的路由系统允许开发者自定义URL模式,使URL更友好,易于理解。 2. **自动验证**:对表单数据进行验证,确保输入符合预设规则。 3. **ORM(对象关系映射)**:通过ActiveRecord模式,提供了...

    cakephp手册完整打印版

    《CakePHP手册完整打印版》是一份专为开发者准备的详尽参考资料,旨在帮助用户深入理解和熟练使用CakePHP框架。 CakePHP是一款基于Model-View-Controller(MVC)设计模式的开源PHP框架,它简化了Web应用开发过程,...

    CakePHP1.2.3.8166.7z CakePHP最新稳定版

    在本文中,我们将深度探讨最新的稳定版CakePHP 1.2.3.8166,解析其核心理念、主要功能以及实际应用。 一、MVC架构与CakePHP MVC架构是一种将业务逻辑、数据以及用户界面分离的设计模式。在CakePHP中,模型(Model...

    CakePHP v2.3.0.zip

    CakePHP v2.3.0是该框架的一个特定版本,发布于2012年,提供了许多改进和新特性,使得开发者可以更轻松地构建安全、高效且可维护的Web应用。 **1. MVC架构**:MVC模式是软件设计中的经典模式,将应用程序分为三个...

    CakePHP框架指南

    CakePHP旨在简化Web应用开发并加速开发过程,提供了构建全功能应用程序所需的组件和功能。 CakePHP框架的几个核心概念包括: 1. MVC模式:模型-视图-控制器是软件工程中的一种架构模式,它将应用程序分为三个主要...

Global site tag (gtag.js) - Google Analytics