sergeykoz/yii2-imageupload

Image upload widget with crop for Yii2

Installs: 12 537

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 1

Open Issues: 0

Type:yii2-extension

0.3.1 2021-02-06 21:48 UTC

This package is not auto-updated.

Last update: 2024-04-12 04:57:09 UTC


README

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist sergeykoz/yii2-imageupload

or add

"sergeykoz/yii2-imageupload": "0.3.1",

to the require section of your composer.json.

Usage

Add upload widget to a form

<?php
    use ssoft\imageupload\ImageUpload;    
    
    echo $form = ActiveForm::begin(['id' => 'image-form', 'options' => ['enctype'=>'multipart/form-data']]);
    
    // first way
    echo ImageUpload::widget([
        'model' => $photoModel,
        'attribute' => 'photo',
        'parametersAttibute' => 'photo_parameters',
        'addClass' => 'col-sm-8',
        'imageUrl' => Yii::getAlias('@web') . '/files',
        'imagePath' => Yii::getAlias('@webroot') . '/files',
        'placeholder' => 'Photo',
        'size' => ['height' => 300, 'width' => 100],    
        'aspectRatio' => 0.33,
        'disabled' => false
    ]);
        
    // second way
    echo $form->field($photoModel, 'image')->widget(ImageUpload::className(), [
        'parametersAttibute' => 'image_parameters',
        'imageUrl' => Yii::getAlias('@web') . '/files',
        'imagePath' => Yii::getAlias('@webroot') . '/files',
        'placeholder' => 'Image'
    ]);
    
    echo ActiveForm::end();
?>

Configure main.php

'controllerMap' => [            
    'imageupload' => 'ssoft\imageupload\ImageController',
],

Manage of uploaded images

<?php
    use ssoft\imageupload\Image;

    // create instance of the image
    $image = new Image([
        'imagePath' => Yii::getAlias('@webroot') . '/files',
        'imageFile' => $photoModel->photo,
        'parameters' => $photoModel->photo_parameters,
    ]);
    
    // save the image with size 100x300 with name Filename100x300.Ext
    $image->save(
        Yii::getAlias('@webroot') . '/files',
        Image::thumbnailName($photoModel->photo, ['height' => 300, 'width' => 100]), 
        ['height' => 300, 'width' => 100]
    );
    
    // get content of the image png
    echo $image->show('png', ['height' => 600, 'width' => 600]);
?>