if ($state->isState('authorized')) { $login = $state->getState('authorized'); if ($_FILES['image']['error'] !== 0) { error("Ошибка при загрузке изображения."); } else { if ($_FILES['image']['size'] === 0) { error("Файл не выбран."); } else { $tmpImage = $_FILES['image']['tmp_name']; $size = getimagesize($tmpImage); $typeToImgCreateFuncs = ['image/gif' => 'imagecreatefromgif', 'image/jpeg' => 'imagecreatefromjpeg', 'image/png' => 'imagecreatefrompng', 'image/bmp' => 'imagecreatefrombmp']; if (!$size || !in_array($size['mime'], array_keys($typeToImgCreateFuncs))) { error("Некорректный формат изображения."); } else { $param = new Parameters(); $db = new DB(); $id = $db->addImage($login); $image = call_user_func($typeToImgCreateFuncs[$size['mime']], $tmpImage); $imagePath = $param->imagesPath . $login . DIRECTORY_SEPARATOR; $ratio = $size[1] / $size[0]; $size = $param->previewSize; $scaled = imagescale($image, $size['width'], $size['height'] * $ratio); imagejpeg($image, $imagePath . $id . '.jpg', 100); imagejpeg($scaled, $imagePath . $id . $param->previewSuffix . '.jpg'); imagedestroy($image); imagedestroy($scaled); echo "success"; } } } }