punjabideveloper/yii2-cropper

Yii2 + Cropper integration extension

Installs: 5

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Type:yii2-extension

v2.5 2020-12-24 23:59 UTC

This package is auto-updated.

Last update: 2024-04-25 07:33:34 UTC


README

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