diff --git a/Upload.class.php b/Upload.class.php index ab7d2d0..79995b8 100644 --- a/Upload.class.php +++ b/Upload.class.php @@ -2,22 +2,31 @@ abstract class Upload { + const PATH_ROOT = '/var/www/10ballov/face/htdocs'; + public static function getGreagwarImage($file_path) + { + require_once PATH . '/lib/GreagwarImage/GreagwarImage.php'; + $greagwar_image = new GreagwarImage($file_path); + $greagwar_image->setCacheDir(self::PATH_ROOT . '/media/cache/images'); + return $greagwar_image; + } /** * @param $file array (ex. ['tmp_name' => '...', 'name' => '...', 'type' => '...']) + * @param $force_create_variants bool * @return Image */ - public static function image($file) + public static function image($file, $force_create_variants = true) { - require_once PATH . '/lib/GreagwarImage/GreagwarImage.php'; - $greagwar_image = new GreagwarImage($file['tmp_name']); - $greagwar_image->setCacheDir('media/cache/images'); $image = new Image; $image->original_filename = $file['name']; $image->type = $file['type']; + $greagwar_image = self::getGreagwarImage($file['tmp_name']); self::saveImage($image, $greagwar_image); - foreach (Image::$sizes as $size) { - $size_parts = explode('x', $size); - self::saveImage($image->getVariant($size), $greagwar_image, $size_parts[0] ? : null, $size_parts[1] ? : null); + if ($force_create_variants) { + foreach (Image::$sizes as $size) { + $size_parts = explode('x', $size); + self::saveImage($image->getVariant($size), $greagwar_image, $size_parts[0] ? : null, $size_parts[1] ? : null); + } } return $image; } @@ -29,29 +38,18 @@ abstract class Upload * @param null $height * @param bool $crop */ - protected static function saveImage($image, $greagwar_image, $width = null, $height = null, $crop = true) + public static function saveImage($image, $greagwar_image, $width = null, $height = null, $crop = true) { if ($width || $height) { $greagwar_image->resize($width, $height, 0xffffff, false, false, $crop); } $file_path = $greagwar_image->cacheFile($greagwar_image->guessType(), 87, true); + $image->size = filesize($file_path); $path_parts = pathinfo($file_path); - $image->path = $path_parts['dirname']; + $image->path = preg_replace('#^' . self::PATH_ROOT . '/#', '', $path_parts['dirname']); $image->filename = $path_parts['basename']; - $image->size = filesize($image->path . '/' . $image->filename); $image->width = $greagwar_image->width(); $image->height = $greagwar_image->height(); $image->setIsNotEmpty(); } - - public static function imageCompareAspectRatio($proportion, $file_path) - { - $imagesize = getimagesize($file_path); - $proprtion_parts = explode('x', $proportion); - if ($proprtion_parts[0] / $proprtion_parts[1] === $imagesize[0] / $imagesize[1]) { - return true; - } else { - false; - } - } } \ No newline at end of file diff --git a/UploadHelper.class.php b/UploadHelper.class.php index e691835..4b69a66 100644 --- a/UploadHelper.class.php +++ b/UploadHelper.class.php @@ -4,22 +4,26 @@ abstract class UploadHelper { public static function imageCompareAspectRatio($proportion, $file_path) { - $imagesize = getimagesize($file_path); - $proprtion_parts = explode('x', $proportion); - if ($proprtion_parts[0] / $proprtion_parts[1] === $imagesize[0] / $imagesize[1]) { - return true; - } else { - false; + if (file_exists($file_path) && is_readable($file_path) && is_file($file_path)) { + if ($imagesize = getimagesize($file_path)) { + $proprtion_parts = explode('x', $proportion); + if ($proprtion_parts[0] / $proprtion_parts[1] === $imagesize[0] / $imagesize[1]) { + return true; + } + } } + return false; } - public static function imageCheckMinSize($size, $file_path) + public static function imageCompareSize($size, $file_path) { - $imagesize = getimagesize($file_path); - $size_parts = explode('x', $size); - if ($imagesize[0] >= $size_parts[0] && $imagesize[1] >= $size_parts[1]) { - return true; - } else { - return false; + if (file_exists($file_path) && is_readable($file_path) && is_file($file_path)) { + if ($imagesize = getimagesize($file_path)) { + $size_parts = explode('x', $size); + if ($imagesize[0] == $size_parts[0] && $imagesize[1] == $size_parts[1]) { + return true; + } + } } + return false; } } \ No newline at end of file