Skip to content

guri-dev/yii2-cropper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yii2 + Cropper integration Extension

This extension integrates Cropper with Yii2 apps. It provides assets and a widget to facilitate uploads of cropped images.

Usage

Yii2-Cropper provides an widget plus an upload file class that inherits from yii\web\UploadedFile. That allows you to use native semantics for uploading files with this extension.

On your model

class Form extends \yii\base\Model
{
    public $image;

    public function rules()
    {
        return [
            ['image', 'image', 'enableClientValidation' => FALSE],
        ];
    }
}

IMPORTANT: If you use image validation in your model (recommended), you must disable client validation, as shown above.

In your view

$form->field($model, 'image')
    ->widget(\fv\yii\Cropper\Widget::class)

In your controller

if ($app->request->isPost) {
   $form->image = \fv\yii\Cropper\UploadedFile::getInstance($form, 'image');

   if ($form->validate())
   {
        $name = '/tmp/' . $form->image->baseName
            . '.' . $form->image->extension;
            
        $form->image->saveAs($name);
        $app->session->setFlash('success',
            'Saved to ' . Html::encode($name));
        return $this->refresh();
    }
}

Notes

No actual file upload by the browser happens. Consequently, the extension never gets to know the name of the file that got sent for cropping, and for compatibility with yii\web\UploadedFile, a random name is generated.

Issues

See https://github.com/punjabideveloper/yii2-cropper