Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Uploads com CakePHP
PHP
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
controllers/components
README.mkdn

README.mkdn

Cake Upload

The Cake Upload is a component created to facilitate the uploading of files in projects that use CakePHP.

Installation

Component

To install the component you need execute :

git submodule add git@github.com:marciotrindade/cake_upload.git plugins/cake_upload
git submodule init
git submodule update

or download the zip and extract it in your plugins directory

Using

create an attribute $files in your controller like this.

var $files = array(
    "name_of_filed" => array(
        "new_name_of_file" => array($options)
    )
);

Options

type    => (move, fixed, resize or crop) how the plugin will process this file.
ext     => you can set how is the extension of file that you will create. Default is "jpg".
name    => you can set how is the name of file that you will create. Default is the key that you use on array (new_name_of_file).
mime    => you can set how is the mime type of file that you will create. Default is "image/jpeg".
width   => if you upload a image you can set a width to methods: fixed, resize or crop.
height  => if you upload a image you can set a height to methods: fixed, resize or crop.
quality => if you upload a image and choose "image/jpeg" to mime type you can set a quality your image.

Structure of folders

When you upload a file this plugin will create this structure in you webroot folder:

files/                       # folder to put uploaded files created by CakePHP
`-- pages                    # name of controller created by component
    `-- 3                    # id of record created by component
        `-- 0                # sequencial of files created by component (you can upload more than one file per record ex. press.pdf, example.doc and image.jpg)
            |-- big.jpg      # name and extension of file
            |-- image.jpg    # name and extension of file
            |-- origin.jpg   # name and extension of file
            `-- thumb.jpg    # name and extension of file

Example

<?php

class ProductsController extends AppController
{
    var $name = 'Products';
    var $components = array('Upload');
    var $files = array(
        "image_0" => array(
            "origin" => array("type" => "move"),
            "big" => array("type" => "resize", "width" => 900, "height"=>700),
            "image" => array("type" => "fixed", "width" => 273, "height"=>365),
            "thumb" => array("type" => "crop", "width"=>126, "height"=>157),
        ),
        "image_1" => array(
            "origin" => array("type" => "move"),
            "big" => array("type" => "resize", "width" => 900, "height"=>700),
            "image" => array("type" => "fixed", "width" => 273, "height"=>365),
            "thumb" => array("type" => "crop", "width"=>126, "height"=>157),
        ),
        "image_2" => array(
            "origin" => array("type" => "move"),
            "big" => array("type" => "resize", "width" => 900, "height"=>700),
            "image" => array("type" => "fixed", "width" => 273, "height"=>365),
            "thumb" => array("type" => "crop", "width"=>126, "height"=>157),
        )
    );

    function admin_add()
    {
        if (!empty($this->data))
        {
            $this->Product->create();
            if ($this->Product->save($this->data))
            {
                $this->data["Product"]["id"] = $this->Product->getLastInsertID();
                $this->Upload->upload();

                $this->Session->setFlash(__('The Product has been saved', true));
                $this->redirect(array("action"=>"index"));
            }
            else
            {
                $this->Session->setFlash(__("The Product could not be saved. Please, try again.", true));
            }
        }
    }

}
?>
Something went wrong with that request. Please try again.