<?php
require($_SERVER['DOCUMENT_ROOT'].'/flowap/system.php');
// Проверка на авторизацию
if(empty($user['id'])):
    $_SESSION['err'] = 'Вы не авторизовались.';
    header('location: /'); exit;
endif;
// Добавляем глобальную переменную
define('R', $_SERVER['DOCUMENT_ROOT']);
//
switch($act) {
	default:
    	header('location: /'); exit;
	break;
	case 'files':
		// Проверяем выбран ли файл
		if(isset($_FILES['file']['name'])):
			// Заранее фильтуем название файла
			$name = functions::htmlred(basename($_FILES['file']['name'])); //фильтруем файл
			// Настройка загрузки
			$maxsize = 100; //максимальный размер файла в мб
			$whitelist = ['zip', 'rar', 'exe', 'png', 'jpeg', 'jpg']; //Допустимые расширения
			$dir = R.'/files/files/'; // Папка, в которую будут загружаться обрезанный фон
			$indos = new SplFileInfo($name); // Стартуем класс по получению расширения
			$ext = $indos->getExtension(); // Получаем само расширение файла
			$size = $_FILES['file']['size']; //Вес файла
			//проверка на ошибки
			if ($size > (1048576 * $maxsize)):
				$err = 'Максимальный размер файла: 100МБ.';
			elseif (!in_array($ext, $whitelist)):
				$err = 'Такое расширение файла запрещено.';
			endif;
			//вывод ошибок
			if(isset($err)):
				$_SESSION['err'] = $err;
				header('location: /'); exit;
			else:
				// Проверка на ошибки со стороны сервера
				if ($_FILES["file"]["error"] == UPLOAD_ERR_OK): // ошибок нет
					// Название файла в tmp
		    		$tmp_name = functions::htmlred($_FILES["file"]["tmp_name"]); // Фильтруем
					// Новое название файла
					$avas = mt_rand(1,999).time().'.'.$ext; // Переименовываем файл
		        	// может быть целесообразным дополнительно проверить имя файла
		        	move_uploaded_file($tmp_name, "$dir/$avas");
		    	 	DB::$dbs->query('INSERT INTO `files_blog` SET `idblog` = ?, `razh` = ?, `name` = ?, `time` = ?, `size` = ?, `gen` = ?',[$id,$ext,$avas,time(),$size,functions::gennz(25)]);
		    	 	DB::$dbs->query('UPDATE `blog` SET `status` = 1 WHERE `id` = ?',[$id]);
					$_SESSION['good'] = 'Файл добавлен.';
					header('location: /'); exit;
				else: // есть ошибки со стороны сервера
			    	if($_FILES["file"]["error"] == 1):
			    		$errs = 'На сервер нельзя загружать такие большие файлы.';
			    	else:
			    		$errs = 'Возникла ошибка при загрузке: № '.$_FILES["file"]["error"];
				    endif;
					$_SESSION['err'] = $errs;
					header('location: /'); exit;
				endif;
			endif;
		else:
		    $_SESSION['err'] = 'Ошибка.';
		    header('location: /'); exit;	
		endif;
	break;
	case 'photos':
		// Заранее фильтуем название файла
		$name = functions::htmlred(basename($_FILES['file']['name'])); //фильтруем файл
		// Настройка загрузки
		$maxsize = 100; //максимальный размер файла в мб
		$whitelist = ['png', 'jpeg', 'jpg', 'gif']; //Допустимые расширения
		$dir = R.'/files/photos/'; // Папка, в которую будут загружаться обрезанный фон
		$indos = new SplFileInfo($name); // Стартуем класс по получению расширения
		$ext = $indos->getExtension(); // Получаем само расширение файла
		$size = $_FILES['file']['size']; //Вес файла
		//проверка на ошибки
		if ($size > (1048576 * $maxsize)):
			$err = 'Максимальный размер файла: 100МБ.';
		elseif (!in_array($ext, $whitelist)):
			$err = 'Такое расширение файла запрещено.';
		endif;
		// вывод ошибок
		if(isset($err)):
			$_SESSION['err'] = $err;
			header('location: /my/fotos/'); exit;
		else:
			// Проверка на ошибки со стороны сервера
			if ($_FILES["file"]["error"] == UPLOAD_ERR_OK): // ошибок нет
	    		$tmp_name = functions::htmlred($_FILES["file"]["tmp_name"]); // Фильтруем
				$avas = mt_rand(1,999).time().'.'.$ext; // Переименовываем файл
	        	move_uploaded_file($tmp_name, "$dir/$avas"); // загружаем файл
	    	 	DB::$dbs->query('INSERT INTO `photos` SET `idus` = ?, `time` = ?, `razr` = ?, `img` = ?',[$user['id'],time(),$ext,$avas]);
				$_SESSION['good'] = 'Изображение добавлено.';
				header('location: /my/fotos/'); exit;
			else: // есть ошибки со стороны сервера
		    	if($_FILES["file"]["error"] == 1):
		    		$errs = 'На сервер нельзя загружать такие большие файлы.';
		    	else:
		    		$errs = 'Возникла ошибка при загрузке: № '.$_FILES["file"]["error"];
			    endif;
				$_SESSION['err'] = $errs;
				header('location: /my/fotos/'); exit;
			endif;
		endif;
	break;
}
?>