`

CakePHP中使用MeioUpload Behavior上传图片[转]

阅读更多

      这款MeioUpload Behavior 真是帮我解决了大问题,感谢作者阿辉 ,另外CakePHP的app/models/behaviors目录是专门用来存放相关行为处理文件的,大家如果想省事儿,可以到http://bakery.cakephp.org/ 来先找找有没有人事先写好的代码,记录下图片上传先。
我的文章表里有两个字段:thumbnailimg 和 largeimg ,分别代表小图和大图,文章添加时上传的两张图片保存到webroot/files/images下,并把路径和文件名分别保存到这两个字段,实现过程如下:

  1. 下载MeioUpload 并把解压后的文件放到app/models/behaviors目录下。
  2. 将下面代码加入到Article Model中。
    var
    
     $actsAs
     =
     array
    
    
     (
    
    
    	// models/behaviors/meio_upload.php
    
    
        'MeioUpload'
    =>
    array
    
    
    
     (
    
            'thumbnailimg'
    =>
    array
    
    
            (
    
                'dir'
    =>
    'files{DS}images'
    ,
    
    
                'create_directory'
    =>
    true
    ,
    
    
                'allowed_mime'
    =>
     array
    
    
                  (
    
                      'image/jpeg'
    ,
    
                      'image/pjpeg'
    ,
    
                      'image/gif'
    ,
    
                      'image/png'
    
                 )
    ,
    
    
                'allowed_ext'
    =>
    array
    
    
    
               (
    
                     '.jpg'
    ,
    
                     '.jpeg'
    ,
    
                     '.png'
    ,
    
                       '.gif'
    
                )
    
    
            )
    ,
    
     
            'largeimg'
     =>
     array
    
    
             (
    
    
                'dir'
     =>
     'files{DS}images'
    ,
    
    
                'create_directory'
     =>
     true
    ,
    
    
                'allowed_mime'
     =>
     array
    
    
                 (
    
                      'image/jpeg'
    ,
    
                      'image/pjpeg'
    ,
    
                      'image/gif'
    ,
    
                      'image/png'
    
                 )
    ,
    
    
                'allowed_ext'
     =>
     array
    
    
                (
    
                      '.jpg'
    ,
    
                      '.jpeg'
    ,
    
                      '.png'
    ,
    
                      '.gif'
    
                 )
    
    
            )
    
    
        )
    
    
    )
    ;
    
    
  3. 在文章添加view模版相应位置分别放上以下两段代码用来提交图片。
    <
    ?php 
    echo
     $form
    ->
    input
    (
    'largeimg'
    ,
    array
    
    (
    'type'
     =>
     'file'
    ,
    'label'
     =>
     false
    ,
    'error' 
    =>
     '请选择大图'
    )
    )
    ;
    
    ?>
    
    
    <
    ?php 
    echo
     $form
    ->
    input
    (
    'Thumbnailimg'
    ,
     array
    
    (
    'type'
     =>
     'file'
    ,
     'label'
     =>
     false
    ,
     'style'
     =>
     'display:none;'
    )
    )
    ;
    
     ?>
    
    
  4. 注意事项:
    • php.ini中的MAX_FILE_SIZE默认值是2M,如果你想上传更大的文件,应该把这里的Size改大一点。
    • 在view模版中添加的这两个提交图片的默认是不能为空的,如果想设置可以为空,假如想设置小图上传可以为空,就可以在Article Model中设置一下验证规则:
      public
       $validate
       =
       array
      
      (
      
      	                       'Thumbnailimg'
      =>
      array
      
      (
      
                                                         'Empty'
      =>
       array
      
      (
       'check'
       =>
       false
      )
      
                                                          )
      
      
                                        )
      ;
      
      

参考:http://www.meiocodigo.com/projects/meioupload/

分享到:
评论

相关推荐

    cakephp中文手册API

    在CakePHP中,模型通常与数据库表关联,用于执行CRUD(创建、读取、更新、删除)操作。ORM(对象关系映射)是模型层的核心,使得开发者可以用面向对象的方式来操作数据库。 4. **视图(View)**: 视图负责展示...

    CakePHP使用ajax传值

    1. 在View文件中引入jquery库:在用户界面中使用Ajax技术,通常需要借助JavaScript库来简化AJAX请求的编写。在CakePHP中,推荐使用jQuery库,因此需要在用户界面文件(如user_normal.ctp)中引入jquery库的脚本文件...

    cakephp 中文手册

    - **行为(Behavior)**:行为是模型层的组件,允许在多个模型之间共享代码,常用于处理关联操作和事件监听。 ### 六、插件和应用结构 蛋糕PHP支持插件机制,允许开发者创建和使用第三方插件来扩展功能。标准的...

    cakephp中文手册

    本手册是针对CakePHP的中文版指南,对于学习和理解这个框架的中文使用者来说,是一份极其宝贵的资源。 在 CakePHP 中,开发者可以快速地搭建功能丰富的Web应用程序。其主要特点包括: 1. **快速开发**:CakePHP ...

    cakephp-cipher-behavior:使用CakePHP加密您的实体数据和此行为

    首先使用将这个插件安装到CakePHP应用程序中。 安装composer软件包的简单方法是: composer require adayth/cakephp-cipher-behavior 之后,您应该在编辑config/bootstrap.php应用程序中加载插件: Plugin :: ...

    CakePHP 1.2 API 中文文档

    CakePHP 1.2 API 中文文档是针对这个版本的详细技术参考,为开发者提供了丰富的接口信息和使用指南,特别适合那些不熟悉英文文档或希望快速查找中文资料的开发者。 **MVC架构介绍** 在 CakePHP 中,MVC模式是核心...

    cakephp 中文文档

    ### CakePHP 中文文档知识点详解 #### 一、CakePHP 的基本原则 CakePHP 是一款基于 PHP 的开源快速开发框架,采用 MVC(Model-View-Controller)设计模式,旨在提高开发效率的同时保持代码的清晰性和可维护性。其...

    CakePHP中文手册

    9. **行为(Behavior)**:类似于模型的组件,行为可以添加到模型中,提供跨模型的共享功能,如日志记录、搜索或缓存。 10. **插件(Plugin)**:插件是独立的CakePHP应用,可以方便地集成到项目中,提供了模块化...

    cakephp 框架书籍 英文版

    - **Vendor Packages**:探讨了如何在CakePHP中使用外部依赖包。 #### 十一、Deployment(部署) - **检查安全性**:提醒开发者注意在部署过程中可能存在的安全漏洞。 - **设置文档根目录**:指导如何正确设置...

    cakephp中文手册.pdf

    在 CakePHP 中,MVC模式被实现得非常直观和易于使用。例如,控制器类通常放在`app/Controller`目录下,模型类位于`app/Model`,而视图文件则位于`app/View`。 **MVC 模式** 虽然手册建议在阅读前了解MVC的基本概念...

    CakePHP 中文手册.rar

    CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。

    PHP的框架之CakePHP-CakePHP教程

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

    cakePHP 中文手册

    CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。 1.活跃友好的社区 2.灵活的许可协议(Licensing) 3.兼容PHP4和PHP5 4.数据库交互和简单查询的集成 5.应用程序Scaffolding 6....

    cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件.zip

    cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件 CakePHP认证插件 包含AuthComponent类认证的插件,用于使用 JSON网络令牌进行身份验证。 你可以在这里详细阅读关于JSON网络令牌规范的详细说明。要求...

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

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

    cakephp手册完整打印版

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

    cakephp中acl详解

    在实际应用中,使用CakePHP的ACL涉及到以下操作: - **安装和配置**:启用`AclComponent`,配置数据库表(`acos`、`aros`和`aro_aco`)以存储ACL数据。 - **生成ACL Tree**:使用`Acl`壳命令(`cake acl`)自动...

Global site tag (gtag.js) - Google Analytics