Размер файла: 3.36Kb
<?php
/*
------------------------------------------------
3020.ru - скрипты тут
------------------------------------------------
*/
FOREACH (ARRAY('config', 'connect', 'users') AS $connect) {
INCLUDE_ONCE ("../../system/connections/global/$connect.php");
}
ACCESS('management');
IF (ISSET($_FILES['file']) && AJAX() == TRUE){
$theme = DB::GET_STRING("SELECT * FROM `PANEL_THEMES` WHERE `ID` = '".INTVAL(GET('id'))."' LIMIT 1");
//Максимальный размер для выгрузки
$MaxFileSize = CONFIG('MAXFILESIZE');
//Разрешенные форматы для выгрузки
$AllowFileExtension = ARRAY('ico');
//Оригинальное название иконки
$FileNameExp = $_FILES['file']['name'];
//Оригинальное название иконки без расширения
$FileName = TEXT_PROCESSING(PREG_REPLACE('#\.[^\.]*$#', NULL, $FileNameExp));
//Расширение иконки
$Exp = STRTOLOWER(PREG_REPLACE('#^.*\.#', NULL, $FileNameExp));
//Фактическое название иконки на сервере
$FactName = "favicon_".RAND(11111,99999)."";
//Временный файл
$TempName = $_FILES['file']['tmp_name'];
//Папка куда будут загружаться иконки
$UploadDir = ROOT."/style/version/".$theme['DIR']."/favicon/";
//Проверка расширения иконки
$FileExtension = PATHINFO(STRTOLOWER($FileNameExp), PATHINFO_EXTENSION);
$err_data = 0;
IF (!ISSET($theme['ID'])){
$error = "Неизвестная ошибка";
$err_data = 1;
}
IF (!IN_ARRAY($FileExtension, $AllowFileExtension)) {
$error = "Неверный формат иконки";
$err_data = 1;
}
//Проверка размера файла
IF (FILESIZE($TempName) > $MaxFileSize) {
$error = "Размер загружаемой иконки превышает установленные ограничения. Размер должен быть не больше ".SIZE_FILE(CONFIG('MAXFILESIZE'))."";
$err_data = 1;
}
IF ($err_data == 1){
ECHO "<div class='file-upload-progress'><i class='fa fa-exclamation-triangle fa-fw'></i> ".$error."</div>";
}ELSE{
//Сохраняем иконку если все хорошо
$CopyFile = COPY($TempName, "".$UploadDir."".$FactName.".".$Exp."");
IF (!$CopyFile) {
ECHO "<div class='file-upload-progress'><i class='fa fa-exclamation-triangle fa-fw'></i> Неизвестная ошибка. Иконка не загружена</div>";
}ELSE{
//Удаляем предыдущую иконку
@UNLINK(ROOT.'/style/version/'.$theme['DIR'].'/favicon/'.$theme['FAVICON'].'');
DB::GET_SET("UPDATE `PANEL_THEMES` SET `FAVICON` = '".$FactName.".".$Exp."' WHERE `ID` = '".$theme['ID']."' LIMIT 1");
//Отправляем запрос на обновление иконки если успешно
?>
<script>
var data = "/panel/?path=site§ion=themes&them_favicon=<?=$theme['ID']?>";
var toLoad = data+' #favicon';
$("#favicon").load(toLoad);
</script>
<?
}
}
}ELSE{
ECHO LG('Не удалось установить соединение с ресивером.');
}
?>