request; $model = new UploadForm(); $ukrSeeds = Yii::$app->params['ukrSeeds']; if ($request->isPost) { $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles'); $model->upload(); $crop_id = $request->post('crop_id'); $cropFactory = CropFactory::getInstance(); $minHeight = $cropFactory->findMinHeight(); $cropContext = new CropContext($cropFactory->getCrop($crop_id)); foreach($model->imageFiles as $file) { $path = dirname(dirname(__DIR__)) . '/uploads/' . $file->baseName . '.' . $file->extension; $image = Yii::$app->imagine->open($path); $image = $cropContext->cropImage($image, $path); $box = $image->getSize()->heighten($minHeight); $image->resize($box) ->save(dirname(dirname(__DIR__)) . '/uploads/' . $file->baseName . '-resized' . '.' . $file->extension); } } return $this->render('index', ['model' => $model, 'ukrSeeds' => $ukrSeeds]); } public function actionGallery() { $files = FileHelper::findFiles(dirname(dirname(__DIR__)) . '/uploads/'); $images = []; foreach($files as $file) { $a = getimagesize($file); $image_type = $a[2]; if(in_array($image_type , [IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP])) { $images[] = '/uploads/' . StringHelper::basename($file); } } return $this->render('gallery', ['files' => $images]); } public function actionGetParams($crop_id) { if (Yii::$app->request->isAjax) { $cropFactory = CropFactory::getInstance(); $res = [ 'body' => $cropFactory->getCrop($crop_id)->getConstants(), 'success' => true, ]; return json_encode($res); } } public function actionDownloadAll() { $files = FileHelper::findFiles(dirname(dirname(__DIR__)) . '/uploads/'); $zip = new \ZipArchive(); $filename = dirname(dirname(__DIR__)) . '/uploads/images.zip'; $zip->open($filename, \ZipArchive::CREATE); foreach($files as $k => $file) { $a = getimagesize($file); $image_type = $a[2]; if(in_array($image_type , [IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP])) { $zip->addFile($file, StringHelper::basename($file)); } } $zip->close(); $response = Yii::$app->response; $response->sendFile($filename); } }