Файл: files/receiver/smiles.php
Строк: 38
<?php
/*
------------------------------------------------
AlphaCMS - универсальный движок для вашего сайта
E-mail администрации проекта: adm@alpha-cms.ru
Официальный сайт поддержки: alpha-cms.ru
Руководитель проекта: adm (ID 1)
------------------------------------------------
*/
FOREACH (ARRAY('config', 'connect', 'users') AS $connect) {
INCLUDE_ONCE ("../../system/connections/global/$connect.php");
}
ACCESS('management');
IF (ISSET($_FILES['file']) && AJAX() == TRUE){
$dir = DB::GET_STRING("SELECT * FROM `SMILES_DIR` WHERE `ID` = '".INTVAL(GET('id_dir'))."' LIMIT 1");
//Выбранное имя смайла
$name_smile = ADSL(POST('name'));
//Максимальный размер для выгрузки
$MaxFileSize = CONFIG('MAXFILESIZE');
//Разрешенные форматы для выгрузки
$AllowFileExtension = ARRAY('jpg', 'jpeg', 'png', 'gif');
//Оригинальное название изображения
$FileNameExp = $_FILES['file']['name'];
//Расширение изображения
$Exp = STRTOLOWER(PREG_REPLACE('#^.*.#', NULL, $FileNameExp));
//Временный файл
$TempName = $_FILES['file']['tmp_name'];
//Папка куда будут загружаться изображения
$UploadDir = ROOT."/files/upload/smiles/";
//Проверка расширения изображения
$FileExtension = PATHINFO(STRTOLOWER($FileNameExp), PATHINFO_EXTENSION);
//Принудительно устанавливаем права 777 на папку
@CHMOD($UploadDir, 0777);
//Определяем ширину и высоту изображения
$xy = GETIMAGESIZE($TempName);
$width = $xy[0];
$height = $xy[1];
$err_data = 0;
IF (!ISSET($dir['ID'])){
$error = "Неизвестная ошибка";
$err_data = 1;
}
IF (STRPOS($name_smile, " ")){
$error = "В названии смайла не могут быть пробелы";
$err_data = 1;
}
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `SMILES` WHERE `NAME` = '".$name_smile."' LIMIT 1") == 1){
$error = "Смайл с таким названием уже есть";
$err_data = 1;
}
IF ($xy == FALSE) {
$error = "Не удалось получить содержимое изображения";
$err_data = 1;
}
IF ($width > 200) {
$error = "Ширина изображения не может быть больше 200px. Текущая ширина: ".$width."px";
$err_data = 1;
}
IF ($height > 200) {
$error = "Высота изображения не может быть больше 200px. Текущая высота: ".$height."px";
$err_data = 1;
}
IF (!IN_ARRAY($FileExtension, $AllowFileExtension)) {
$error = "Неверный формат изображения";
$err_data = 1;
}
//Проверка размера изображения
IF (FILESIZE($TempName) > $MaxFileSize) {
$error = "Размер загружаемого изображения превышает установленные ограничения";
$err_data = 1;
}
IF (STR($name_smile) < 1) {
$error = "Имя смайла не может быть менее 1 символа";
$err_data = 1;
}
IF (STR($name_smile) > 50) {
$error = "Имя смайла не может быть более 50 символов";
$err_data = 1;
}
IF ($err_data == 1){
ECHO "<div class='file-upload-progress'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG($error)."</div>";
}ELSE{
$ID = DB::GET_ADD("INSERT INTO `SMILES` (`NAME`, `ID_DIR`, `EXT`) VALUES ('".$name_smile."', '".$dir['ID']."', '".$Exp."')");
//Сохраняем изображение если все хорошо
$CopyFile = COPY($TempName, "".$UploadDir."".$ID.".".$Exp."");
IF (!$CopyFile) {
ECHO "<div class='file-upload-progress'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG('Неизвестная ошибка')."</div>";
}ELSE{
//Отправляем запрос на обновление листа если успешно
?>
<script>
var data = "/panel/?path=site§ion=modules&mod=smiles&id_dir=<?=$dir['ID']?>";
var toLoad = data+' #smiles_upgrade';
$("#smiles_upgrade").load(toLoad);
</script>
<?
}
}
}ELSE{
REDIRECT('/index');
}
?>