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/

你可能还对下面的日志感兴趣:

相关标签: Development & Design and tagged , , .

5 Responses to CakePHP中使用MeioUpload Behavior上传图片

  1. shrimpn says:

    感谢你你的推荐,在使用过程中,遇到了一些问题,希望得到您的帮助。
    目前使用的时候,添加数据的时候将文件(图片)保存到磁盘下边没有问题,但是如何在编辑信息的时候,能够替换或者删除文件(图片)信息?

  2. Arantxa says:

    Gracias!!!!

    你好

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>