enableCsrfValidation = false; return parent::beforeAction($action); } private function resizeImg($w, $h, $imageAlias,$imageAliasSave){ $img = Image::getImagine()->open(Yii::getAlias($imageAlias)); $size = $img->getSize(); $width = $size->getWidth(); $height = $size->getHeight(); if($width > $height) { $y = 0; $x = ($width - $height) / 2; $smallestSide = $height; } else { $x = 0; $y = ($height - $width) / 2; $smallestSide = $width; } // die('$width = '.$width.','.'$height = '.$height.','.'$y = '.$y.','.'$x = '.$x.','.'$smallestSide = '.$smallestSide.',' ); // // $ratio = $size->getWidth()/$size->getHeight(); // // $height = $h; // $width = round($height * $ratio); $image_p = imagecreatetruecolor($w, $h); $image = imagecreatefromjpeg($imageAlias); imagecopyresampled($image_p, $image, 0, 0, $x, $y, $w, $h, $smallestSide, $smallestSide); imagejpeg($image_p, $imageAliasSave); } public function actionDownloadPhoto() { $model = new ImageSizerForm(); 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.$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, 0755, true); } $model->file->saveAs($imageAlias); $this->resizeImg($model->width, $model->height, $imageAlias,$imageAlias); return json_encode(['link'=>$imageLink]); } } }