enableCsrfValidation = false; return parent::beforeAction($action); } public function actionIndex() { $request = Yii::$app->request; $model = new UploadForm(); $ukrSeeds = Yii::$app->params['ukrSeeds']; if ($request->isPost) { $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles'); $crop_id = $request->post('crop_id'); $model->upload($ukrSeeds[$crop_id]); $cropFactory = CropFactory::getInstance(); $minHeight = $cropFactory->findMinHeight(); $cropContext = new CropContext($cropFactory->getCrop($crop_id)); $basePath = dirname(dirname(__DIR__)) . '/uploads/'. $ukrSeeds[$crop_id] . '/'; foreach($model->imageFiles as $file) { $baseName = Helper::transliterate($file->name); $path = $basePath . $baseName; $image = Yii::$app->imagine->open($path); $image = $cropContext->cropImage($image, $path); $box = $image->getSize()->heighten($minHeight); $image->resize($box) ->save($basePath . 'resized-' . $baseName); } } return $this->render('index', ['model' => $model, 'ukrSeeds' => $ukrSeeds]); } public function actionGallery() { $files = FileHelper::findFiles(dirname(dirname(__DIR__)) . '/uploads/'); $images = []; foreach($files as $file) { if(Helper::isImage($file)) { $images[] = Helper::findUrl($file, 2); } } 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::OVERWRITE); foreach($files as $k => $file) { if(Helper::isImage($file)) { $zip->addFile($file, Helper::findUrl($file, 1)); } } $zip->close(); $response = Yii::$app->response; $response->sendFile($filename); } public function actionDeleteImages() { if (Yii::$app->request->isAjax) { $data = Yii::$app->request->post(); $files = $data['images']; $basePath = dirname(dirname(__DIR__)); foreach($files as $file) { $path = $basePath . $file; if(file_exists($path)) unlink($path); } return json_encode($data); } } }