flaviovs/yii2-croppie

Yii2 + Croppie integration extension

Installs: 4 534

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 3

Forks: 1

Open Issues: 0

Type:yii2-extension

1.0.0-rc3 2019-03-15 00:03 UTC

This package is auto-updated.

Last update: 2024-04-25 22:05:33 UTC


README

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

Usage

Yii2-Croppie 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\croppie\Widget::class)

In your controller

if ($app->request->isPost) {
   $form->image = \fv\yii\croppie\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 http://github.com/flaviovs/yii2-croppie