This extension integrates Cropper with Yii2 apps. It provides assets and a widget to facilitate uploads of cropped images.
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.
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.
$form->field($model, 'image')
->widget(\fv\yii\Cropper\Widget::class)
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();
}
}
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.