/** * @param $model * @param $type * @param $id * @param $fileName * @param $ext * * @throws \CHttpException */ public function actionResize($model, $type, $id, $fileName, $ext) { $file = FPM::getOriginalFilePath($id, $fileName, $ext); if (file_exists($file)) { $meta = FPM::transfer()->getMetaData($id); if (!(is_array($meta) && $fileName === $meta['real_name'])) { throw new CHttpException(404, 'File not found'); } $config = isset(FPM::m()->imageSections[$model]) && isset(FPM::m()->imageSections[$model][$type]) ? FPM::m()->imageSections[$model][$type] : null; if (!$config) { throw new CHttpException(400, 'Incorrect request'); } $thumbFile = FPM::getCachedImagePath($id, $model, $type, $id . '-' . $meta['real_name'] . '.' . $meta['extension']); FPM::createCacheDir($id, $model, $type); /** @var $ih \fileProcessor\extensions\imageHandler\drivers\MDriverAbstract|\fileProcessor\extensions\imageHandler\MImageHandler */ $ih = Yii::createComponent(FPM::m()->getImageHandler()); $ih->init(); $ih->load($file); if (isset($config['do'])) { switch ($config['do']) { case 'adaptiveResize': $ih->adaptiveThumb($config['width'], $config['height']); break; case 'resize': $ih->resize($config['width'], $config['height']); break; case 'copy': // do nothing, create copy of the file break; case 'resizeCanvas': $ih->resizeCanvas($config['width'], $config['height']); break; case 'rhombusResizeCanvas': $ih->resizeCanvas(floor($config['width'] / 2), floor($config['height'] / 2))->resizeCanvas($config['width'], $config['height']); break; default: throw new CHttpException(400, 'Incorrect action'); break; } } else { $ih->adaptiveThumb($config['width'], $config['height']); } $ih->save($thumbFile, false, $config['quality']); $ih->show(false, $config['quality']); } else { throw new CHttpException(404, 'File not found'); } Yii::app()->end(); }
/** * Delete cached images. * * @param integer $id image id * * @internal param bool|string $ext * * @return void */ public function delete($id) { $metaData = FPM::transfer()->getMetaData($id); if (!in_array($metaData['extension'], array('png', 'jpeg', 'jpg', 'gif'), true)) { return; } $config = FPM::m()->imageSections; foreach ($config as $modelKey => $model) { foreach ($model as $typeKey => $type) { $fileName = FPM::getCachedImagePath($id, $modelKey, $typeKey, $metaData['real_name']); if (is_file($fileName)) { unlink($fileName); } } } }