cakephp2 MeioUpload 图片上传简单应用

来源:互联网 发布:华悦网络加速器怎么样 编辑:程序博客网 时间:2024/06/05 20:17

cakephp2之前 图片的上传用MeioUpload Behavior   之后cakephp2.x使用 upload plugin 实现,该链接https://github.com/josegonzalez/upload就其应用作了详细说明;本人就其简单应用做介绍;

   在制作网站时,想让图片上传管理成单独模块,而不是upload plugin上举例的附加在其他控制器之上,所以建立了单独的MVC,可上传图片,参看上传图片,通过删除数据库中记录实现图像的删除(但对应产生的目录删除不掉)其默认产生路径如:files/模型名/字段名(存储文件名)/目录名(自动产生的ID一致)/abc.jpg 其关键实现点如下:

1
  • 下载插件: http://github.com/josegonzalez/upload/zipball/master
  • 解压并放置到 app/Plugin
  • 重命名为 Upload 或其他

2.

配置app/Config/bootstrap.php 文件

CakePlugin::load('Upload');CakePlugin::loadAll();

3.创建如下数据库CREATE table users ( `id` int(10) unsigned NOT NULL auto_increment, `username` varchar(20) NOT NULL, `photo` varchar(255) DEFAULT NULL, `photo_dir` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`));如无photo_dir字段不能完成图片的删除

4.利用CAKE bake命令 产生对应的MVC 在创建VC时创建为管理员模式(admin_index.ctp等)

5.在模型中设置如下:<?phpclass User extends AppModel { public $actsAs = array( 'Upload.Upload' => array( 'photo' => array( 'fields' => array( 'dir' => 'photo_dir' ) ) ) );}

6.修改VIEW中admin_add.ctp 删除自动产生记录添加,变为

<?php echo $this->Form->create('User', array('type' => 'file')); ?>

<?php echo $this->Form->input('User.username'); ?>

<?php echo $this->Form->input('User.photo', array('type' => 'file')); ?>

<?php echo $this->Form->input('User.photo_dir', array('type' => 'hidden')); ?>

<?php echo $this->Form->end(); ?>

7.删除VIEW中edit.cpt  修改admin_view.ctp     添加<img src="<? echo '/files/users/photo/'.$user['user'][''photo_dir'].'/'.$user['user']['photo'];?>" alt="" /> 可查看上传的图片

8.删除对应记录,上传的图片也会删除,但'photo_dir'所指定的目录不删除,如果上传,或删除多个文件,冗余的目录太多好,但删除文件其实通过目录控制,又不能不用。

原创粉丝点击