2017 © Pedro Peláez
 

yii2-extension yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

image

valiant/yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

  • Thursday, December 1, 2016
  • by one-more-developer
  • Repository
  • 1 Watchers
  • 0 Stars
  • 58 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 31 Forks
  • 0 Open issues
  • 5 Versions
  • 2 % Grown

The README.md

Description

This is fork for yii-dream-team/yii2-upload-behavior from Yii Dream Team (http://yiidreamteam.com), (*1)

Yii2 file/image upload behavior for ActiveRecord

This package is the set of two similar behaviors. The first one allows you to keep the uploaded file as-is. And the second one allows you to generate set of thumbnails for the uploaded image. Behaviors could be attached multiple times for different attributes., (*2)

Installation

The preferred way to install this extension is through composer., (*3)

Either run, (*4)

php composer.phar require --prefer-dist valiant/yii2-upload-behavior "*"

or add, (*5)

"valiant/yii2-upload-behavior": "*"

to the require section of your composer.json., (*6)

FileUploadBehavior

This behavior allow you to add file uploading logic with ActiveRecord behavior., (*7)

Usage

Attach the behavior to your model class:, (*8)

public function behaviors()
{
    return [
        [
            'class' => '\valiant\behaviors\FileUploadBehavior',
            'attribute' => 'attachment',
            'filePath' => '@webroot/uploads/[[pk]].[[extension]]',
            'fileUrl' => '/uploads/[[pk]].[[extension]]',
        ],
    ];
}

You can use Yii path aliases like @app, @webroot, @web in your path template configuration., (*9)

You can also use additional placeholders in path templates. Placeholder [[foobar]] will be replaced with appropriate placeholder value., (*10)

Possible path/url placeholders:, (*11)

  • [[model]] - model class name
  • [[pk]] - value of the primary key
  • [[id]] - the same as [[pk]]
  • [[extension]] - original extension
  • [[attribute]] - attribute name
  • [[id_path]] - id subdirectories structure (if model primary key is 12345, placeholder value will be 1/2/3/4/5/0/0/0/0/0)
  • [[id_hash]] - id subdirectories structure by md5 hash (if model primary key is 12345, md5 hash is 827ccb0eea8a706c4c34a16891f84e7b placeholder value will be 8/27/ccb0eea8a706c4c34a16891f84e7b)
  • [[id_hash_piece]] - id hash dex piece, will be in range 0-255 (if model primary key is 12345, md5 hash is 827ccb0eea8a706c4c34a16891f84e7b, first 2 hex numbers is 82, convert hexDex and placeholder value will be 130)
  • [[attribute_name]] - attribute value, for example [[attribute_ownerId]]

Add validation rule:, (*12)

public function rules()
{
    return [
        ['attachment', 'file'],
    ];
}

Setup proper form enctype:, (*13)

$form = \yii\bootstrap\ActiveForm::begin([
    'enableClientValidation' => false,
    'options' => [
        'enctype' => 'multipart/form-data',
    ],
]);

File should be uploading fine., (*14)

You can get uploaded file url using model call:, (*15)

echo $model->getUploadedFileUrl('attachment');

ImageUploadBehavior

Image upload behavior extends file upload behavior with image thumbnails generation. You can configure set of different thumbnail profiles to generate., (*16)

Usage

Attach the behavior to your model class:, (*17)

public function behaviors()
{
    return [
        [
             'class' => '\valiant\behaviors\ImageUploadBehavior',
             'attribute' => 'image',
             'thumbs' => [
                 'thumb' => ['width' => 400, 'height' => 300],
                 'albumThumb' => ['width' => 200],
                 'albumLogo' => ['height' => 500],
             ],
             'filePath' => '@webroot/images/[[pk]].[[extension]]',
             'fileUrl' => '/images/[[pk]].[[extension]]',
             'thumbPath' => '@webroot/images/[[profile]]_[[pk]].[[extension]]',
             'thumbUrl' => '/images/[[profile]]_[[pk]].[[extension]]',
        ],
    ];
}

You can use Yii path aliases like @app, @webroot, @web in your path template configuration., (*18)

You can also use additional placeholders in path templates. Placeholder [[foobar]] will be replaced with appropriate placeholder value., (*19)

Possible path/url placeholders: * [[model]] - model class name * [[pk]] - value of the primary key * [[id]] - the same as [[pk]] * [[extension]] - original extension * [[attribute]] - attribute name * [[id_path]] - id subdirectories structure (if model primary key is 12345, placeholder value will be 1/2/3/4/5/0/0/0/0/0) * [[id_hash]] - id subdirectories structure by md5 hash (if model primary key is 12345, md5 hash is 827ccb0eea8a706c4c34a16891f84e7b placeholder value will be 8/27/ccb0eea8a706c4c34a16891f84e7b) * [[id_hash_piece]] - id hash dex piece, will be in range 0-255 (if model primary key is 12345, md5 hash is 827ccb0eea8a706c4c34a16891f84e7b, first 2 hex numbers is 82, convert hexDex and placeholder value will be 130) * [[attribute_name]] - attribute value, for example [[attribute_ownerId]] * [[profile]] - thumbnail profile name, use it in thumbnail path/url * [[width]] - thumbnail width, use it in thumbnail path/url * [[height]] - thumbnail height, use it in thumbnail path/url, (*20)

Add validation rule:, (*21)

public function rules()
{
    return [
        ['image', 'file', 'extensions' => 'jpg, gif, png'],
    ];
}

Setup proper form enctype:, (*22)

$form = \yii\bootstrap\ActiveForm::begin([
    'enableClientValidation' => false,
    'options' => [
        'enctype' => 'multipart/form-data',
    ],
]);

File should be uploading fine., (*23)

You can get uploaded image url using model call:, (*24)

echo $model->getImageFileUrl('image');

You can specify default image for models without uploaded image:, (*25)

echo $model->getImageFileUrl('image', '/images/empty.jpg');

You can also get generated thumbnail image url:, (*26)

echo $model->getThumbFileUrl('image', 'thumb');

You can specify default thumbnail image for models without uploaded image:, (*27)

echo $model->getThumbFileUrl('image', 'thumb', '/images/thumb_empty.jpg');

Licence

MIT, (*28)

The Versions

01/12 2016

dev-master

9999999-dev https://github.com/one-more-developer/yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

  Sources   Download

MIT

The Requires

 

file upload behavior image resize thumbnail

01/12 2016

1.1.3

1.1.3.0 https://github.com/one-more-developer/yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

  Sources   Download

MIT

The Requires

 

file upload behavior image resize thumbnail

16/11 2015

1.1.2

1.1.2.0 https://github.com/one-more-developer/yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

  Sources   Download

MIT

The Requires

 

file upload behavior image resize thumbnail

09/09 2015

1.1.1

1.1.1.0 https://github.com/one-more-developer/yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

  Sources   Download

MIT

The Requires

 

file upload behavior image resize thumbnail

03/06 2015

1.0.1

1.0.1.0 https://github.com/one-more-developer/yii2-upload-behavior

Yii2 file/image upload behavior for ActiveRecord

  Sources   Download

MIT

The Requires

 

file upload behavior image resize thumbnail