Просмотр файла siwap.ru/AJAX/news/addNews.php

Размер файла: 2.8Kb
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/system/App.php');
	
if($sys->isAjax() && $_SERVER['REQUEST_METHOD'] == 'POST')
{
	$message = isset($_POST['message']) && !empty($_POST['message']) ? $sys->protect($_POST['message']) : null;
	
	if (!$me)
	{
		$json = [
			'error'   => 1, 
			'comment' => 'Войдите для выполнения данного действия',
		];
	}
	elseif (empty($message))
	{
		$json = [
			'error'   => 1, 
			'comment' => 'Введите сообщение',
		];
	}
	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 = '/uploads/attachs/'; 
			$arrTypes = [
				'gif',
				'jpg',
				'png',
				'jpeg', 
				'bmp',
			];
			
			$newsId = Base::add('news', [
				'time'    => TIME, 
				'message' => $message,
				'user_id' => $me['id'], 
			]);
			
			if (!empty($newsId))
			{
				foreach($files as $file)
				{
					$name       = $file['name'];
					$uploadType = substr($name, strrpos($name, ".") + 1);
					$newName    = $_SERVER['HTTP_HOST'].'_attach_'.$core->hash(5).'.'.$uploadType;
					
					if ($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'], ROOT.$uploadDir.$newName) || !Base::add('news_files', ['url' => HOME.$uploadDir.$newName, 'time' => TIME, 'user_id' => $me['id'], 'news_id' => $newsId]))
	        			{
	        				$json = [
								'error'   => 1,
								'comment' => 'Ошибка загрузки изображения',
							];
	        			}
						else
						{
							$json = [
								'success' => 1,
								'comment' => 'Запись добавлена',
								'url'     => HOME.'/news',
							];
						}
	        		}	
				}
			}		
			else
			{
				$json = [
					'error'   => 1,
					'comment' => 'Ошибка добавления записи',
				];
			}
		}
	}
}
else
{
	$json = [
		'error'   => 1, 
		'comment' => '404 Bad Request'
	];
}
echo json_encode($json, JSON_UNESCAPED_UNICODE);