View file siwap.ru/AJAX/albums/newAlbum.php

File size: 3.19Kb
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/system/App.php');
	
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' && $_SERVER['REQUEST_METHOD'] == 'POST')
{
	$albumName = isset($_POST['name']) && !empty($_POST['name']) ? $sys->protect($_POST['name']) : null;
	$formId = isset($_POST['form_id']) && !empty($_POST['form_id']) ? intval($_POST['form_id']) : null;
	
	if (empty($albumName))
	{
		$json = [
			'error' => 1,
			'comment' => 'Вы не ввели название альбома',
		];
	}
	elseif (empty($formId))
	{
		$json = [
			'error' => 1,
			'comment' => 'Не указан id формы, обновите страницу',
		];
	}
	else
	{
		$files = $_FILES;
		$countFiles = count($files);
		
		if (empty($countFiles))
		{
			$json = [
				'error' => 1,
				'comment' => 'Изображения не выбраны',
			];
		}
		elseif ($countFiles > $settings->max_files_to_download)
		{
			$json = [
				'error' => 1,
				'comment' => 'Лимит на разовую загрузку - '.$settings->max_files_to_download,
			];
		}
		else
		{
			$maxSize = 10;
			$uploadDir = ROOT.'/uploads/'; 
			
			$arrTypes = [
				'gif',
				'jpg',
				'png',
				'jpeg', 
				'bmp',
			];
			
			$albumId = Base::add('albums', [
				'time' => TIME, 
				'name' => $albumName,
				'user_id' => $me['id'], 
			]);
			
			if (!empty($albumId))
			{
				
				foreach($files as $file)
				{
					$name = $file['name'];
					$uploadType = substr($name, strrpos($name, ".") + 1);
					
					$newName = $_SERVER['HTTP_HOST'].'-'.$core->hash(10).'.'.$uploadType;
					
					if (!file_exists($file['tmp_name']))
					{
						$json = [
							'error' => 1,
							'comment' => 'Изображения не выбраны',
						];
					}
					elseif ($file['size'] > (1048576 * $maxSize))
					{
						$json = [
							'error' => 1,
							'comment' => 'Вес изображения не должен превышать '.$maxSize.' мб',
						];
					}
					elseif (!in_array($uploadType, $arrTypes))
	        		{
						$json = [
							'error' => 1, 
							'comment' => 'Файл данного формата выгружать запрещено',
						];
	        		}
	        		else
	        		{
	        			
	        			if (move_uploaded_file($file['tmp_name'], $uploadDir.$newName) && Base::add('photos', ['name' => $newName, 'user_id' => $me['id'], 'album_id' => $albumId]))
	        			{
							$json = [
								'success' => 1,
								'comment' => 'Альбом успешно создан',
								'url' => HOME.'/album/id'.$albumId,
							];
	        			}
	        			else
	        			{
	        				$json = [
								'error' => 1,
								'comment' => 'Ошибка загрузки изображения',
							];
	        			}
	        		}
				}
			}
			else
			{
				$json = [
					'error' => 1,
					'comment' => 'Альбом не был создан',
				];
			}
		}
	}
	
}
else
{
	$json = ['error' => 1, 'comment' => '404 Bad Request'];
}
echo json_encode($json, JSON_UNESCAPED_UNICODE);