This extension automatically uploads image and make crop.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist karpoff/yii2-crop-image-upload "*"
or add
"karpoff/yii2-crop-image-upload": "*"
to the require
section of your composer.json
file.
Attach the behavior in your model:
use karpoff\icrop\CropImageUploadBehavior;
class Document extends ActiveRecord
{
/**
* @inheritdoc
*/
public function rules()
{
return [
['photo', 'file', 'extensions' => 'jpeg, gif, png', 'on' => ['insert', 'update']],
];
}
/**
* @inheritdoc
*/
function behaviors()
{
return [
[
'class' => CropImageUploadBehavior::className(),
'attribute' => 'photo',
'scenarios' => ['insert', 'update'],
'path' => '@webroot/upload/docs',
'url' => '@web/upload/docs',
'ratio' => 1,
'crop_field' => 'photo_crop',
'cropped_field' => 'photo_cropped',
],
];
}
}
Example view file:
<?php use karpoff\icrop\CropImageUpload; ?>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model, 'photo')->widget(CropImageUpload::className()) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>