diff --git a/backend/components/ImageSizer.php b/backend/components/ImageSizer.php index d3b2a4e..0880a9b 100644 --- a/backend/components/ImageSizer.php +++ b/backend/components/ImageSizer.php @@ -33,7 +33,9 @@ class ImageSizer extends Widget [ 'model'=>$this->model, 'field' => $this->field, - 'form' => $this->form + 'form' => $this->form, + 'height' => $this->height, + 'width' => $this->width ]); } diff --git a/backend/components/base/BaseController.php b/backend/components/base/BaseController.php index da431fe..46c156c 100644 --- a/backend/components/base/BaseController.php +++ b/backend/components/base/BaseController.php @@ -7,9 +7,13 @@ */ namespace backend\components\base; +use Yii; +use yii\web\UploadedFile; +use backend\models\ImageSizerForm; use yii\web\Controller; - - +use Imagine\Gd\Imagine; +use Imagine\Image\Box; +use yii\imagine\Image; class BaseController extends Controller { @@ -42,24 +46,50 @@ class BaseController extends Controller { } +// private function resizeImg($w, $h, $filepath,$newfilepath){ +// list($orig_width, $orig_height) = getimagesize($filepath); +// $width = $orig_width; +// $height = $orig_height; +// if($width > $height) { +// $y = 0; +// $x = ($width - $height) / 2; +// $smallestSide = $height; +// } else { +// $x = 0; +// $y = ($height - $width) / 2; +// $smallestSide = $width; +// } +// +// $image_p = imagecreatetruecolor($w, $h); +// +// $image = imagecreatefromjpeg($filepath); +// +// imagecopyresampled($image_p, $image, 0, 0, $x, $y, +// $w, $h, $smallestSide, $smallestSide); +// +// imagejpeg($image_p, $newfilepath); +// +// +// } + public function actionDownloadPhoto() { - die('here'); - $model = new UploadForm(); + $model = new ImageSizerForm(); + //die(print_r(Yii::$app->request->post())); if ($model->load(Yii::$app->request->post())) { $model->file = UploadedFile::getInstance($model, 'file'); $md5_file = md5_file($model->file->tempName); $imgDir = Yii::getAlias('@storage/'.$md5_file.'/'); - $imageAlias = Yii::getAlias($imgDir.'480x365'.'.'.$model->file->extension); - $imageLink = '/storage/'.$md5_file.'/480x365'.'.'.$model->file->extension; + $imageAlias = Yii::getAlias($imgDir.$model->width.'x'.$model->height.'.'.$model->file->extension); + $imageLink = '/storage/'.$md5_file.$model->width.'x'.$model->height.'.'.$model->file->extension; if(!is_dir($imgDir)) { - mkdir($imgDir, 0777, true); + mkdir($imgDir, 0755, true); } $model->file->saveAs($imageAlias); - $this->resizeImg(480, 365, $imageAlias,$imageAlias); + $this->resizeImg($model->width, $model->height, $imageAlias,$imageAlias); return json_encode(['link'=>$imageLink]); } diff --git a/backend/components/views/image_sizer.php b/backend/components/views/image_sizer.php index 3139826..69ee0c5 100644 --- a/backend/components/views/image_sizer.php +++ b/backend/components/views/image_sizer.php @@ -25,6 +25,10 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl $("#").fileupload({ dataType: 'json', + formData: { + height: , + width: + }, done: function (e, data) { var host = window.location.host.toString(); console.log(host); diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php index 79b1b50..15e627b 100644 --- a/backend/controllers/SiteController.php +++ b/backend/controllers/SiteController.php @@ -23,7 +23,7 @@ class SiteController extends BaseController 'class' => AccessControl::className(), 'rules' => [ [ - 'actions' => ['login', 'error'], + 'actions' => ['login', 'error', 'download-photo' ], 'allow' => true, ], [ diff --git a/backend/models/ImageSizerForm.php b/backend/models/ImageSizerForm.php new file mode 100644 index 0000000..227d03f --- /dev/null +++ b/backend/models/ImageSizerForm.php @@ -0,0 +1,28 @@ + 255], + [['file'], 'file'], + ]; + } +} \ No newline at end of file diff --git a/backend/views/user/_form.php b/backend/views/user/_form.php index 40c98c7..024795e 100644 --- a/backend/views/user/_form.php +++ b/backend/views/user/_form.php @@ -33,7 +33,7 @@ use yii\helpers\ArrayHelper; ], 'id', 'name')) ?> - $form, 'model'=> $model, 'field'=>'photo']); ?> + $form, 'model'=> $model, 'field'=>'photo','width'=>200,'height'=>200]); ?> field($model, 'contacts')->textInput(['maxlength' => true]) ?> diff --git a/composer.json b/composer.json index abe9d61..63fd73b 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,8 @@ "yiisoft/yii2": ">=2.0.6", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", - "yiisoft/multiparser": "*" + "yiisoft/multiparser": "*", + "yiisoft/yii2-imagine": "*" }, "require-dev": { "yiisoft/yii2-codeception": "*", -- libgit2 0.21.4