A CakePHP (2.0) plugin enabling transfer/manipulation/embedding of files in 23 ways.
PHP Other
Pull request Compare This branch is 174 commits ahead, 77 commits behind davidpersson:next.
Latest commit 2937590 Apr 18, 2014 @bmcclure Merge pull request #62 from ndm2/add-composer-support
Add composer support


Database Fields

    create table users (
    id char(36) not null,
    file varchar(255) default null,
    dirname varchar(255) default null,
    basename varchar(255) default null,
    checksum varchar(255) default null,
    created datetime default null,
    modified datetime default null,
    primary key(id)


  1. Clone into /path/to/app/Plugin git clone https://bmcclure@github.com/bmcclure/CakePHP-Media-Plugin.git Media
  2. Add as a submodule git submodule add https://bmcclure@github.com/bmcclure/CakePHP-Media-Plugin.git Plugin/Media
  3. Load the plugin.
    //Within your bootstrap.php
    `CakePlugin::load('Media', array('bootstrap'=>true));
  4. Initialize Media files. cake Media.Media init
    Media Shell
    Do you want to create missing media directories now?
    [n] > y`` /app/webroot/media/ [OK ] /app/webroot/media/static/ [OK ] /app/webroot/media/static/aud [OK ] /app/webroot/media/static/doc [OK ] /app/webroot/media/static/gen [OK ] /app/webroot/media/static/img [OK ] /app/webroot/media/static/vid [OK ] /app/webroot/media/transfer/ [OK ] /app/webroot/media/transfer/aud [OK ] /app/webroot/media/transfer/doc [OK ] /app/webroot/media/transfer/gen [OK ] /app/webroot/media/transfer/img [OK ] /app/webroot/media/transfer/vid [OK ] /app/webroot/media/filter/ [OK ]

Your transfer directory is missing a htaccess file to block requests. Do you want to create it now?
[n] > n

  1. Set the permissions for the Media folder:
    chmod -R 777 webroot/media/{transfer,filter}

Upload and View Image

  1. Set the model as media transfer user
    class User extends AppModel {
    var $name = 'User';
    var $actsAs = array('Media.Transfer', 'Media.Coupler', 'Media.Meta');
  2. Set the form:
    echo $this->Form->create('User', array('type'=>'file'));
    echo $this->Form->input('file', array('type'=>'file'));
    echo $this->Form->input('dirname', array('type'=>'hidden'));
    echo $this->Form->input('basename', array('type'=>'hidden'));
    echo $this->Form->input('checksum', array('type'=>'hidden'));
    echo $this->Form->end(__('Submit'));
  3. To view image, add the Media helper to your controller and use:
    <?php echo $this->Media->embed(h($employee['User']['basename'])); ?>
  4. ENJOY!