Файл: files/receiver/avatar.php
Строк: 39
<?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('users');
IF (ISSET($_FILES['file']) && AJAX() == TRUE){
//Максимальный размер для выгрузки
$MaxFileSize = CONFIG('MAXFILESIZE');
//Разрешенные форматы для выгрузки
$AllowFileExtension = ARRAY('jpg', 'jpeg', 'png', 'gif');
//Оригинальное название изображения
$FileNameExp = $_FILES['file']['name'];
//Оригинальное название изображения без расширения
$FileName = TEXT_PROCESSING(PREG_REPLACE('#.[^.]*$#', NULL, $FileNameExp));
//Расширение изображения
$Exp = STRTOLOWER(PREG_REPLACE('#^.*.#', NULL, $FileNameExp));
//Фактическое название изображения на сервере
$FactName = "".$user['ID']."_".RAND(11111,99999)."";
//Временный файл
$TempName = $_FILES['file']['tmp_name'];
//Папка куда будут загружаться изображения
$UploadDir = ROOT."/files/upload/photos/source/";
//Проверка расширения изображения
$FileExtension = PATHINFO(STRTOLOWER($FileNameExp), PATHINFO_EXTENSION);
//Принудительно устанавливаем права 777 на папку
@CHMOD($UploadDir, 0777);
//Определяем ширину и высоту изображения
$xy = GETIMAGESIZE($TempName);
$width = $xy[0];
$height = $xy[1];
$err_data = 0;
IF (CONFIG('FILE_ACCESS') == 0) {
$error = "Выгрузка файлов на сайте приостановлена администрацией";
$err_data = 1;
}
//Настройки фотоальбомов
$photos_settings = @PARSE_INI_FILE(ROOT."/system/config/photos.ini", FALSE);
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `PHOTOS` WHERE `USER_ID` = '".$user['ID']."'") >= $photos_settings['PHOTOS_LIMIT']){
$error = "Вы исчерпали лимит на добавление фото";
$err_data = 1;
}
IF ($xy == FALSE) {
$error = "Не удалось получить содержимое изображения";
$err_data = 1;
}
IF ($width < 120) {
$error = "Ширина изображения не может быть меньше 120px. Текущая ширина: ".$width."px";
$err_data = 1;
}
IF ($height < 120) {
$error = "Высота изображения не может быть меньше 120px. Текущая высота: ".$height."px";
$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 (STR($FileName) < 1) {
$error = "Имя загружаемого изображения не должно быть менее 1 символа";
$err_data = 1;
}
IF (STR($FileName) > 200) {
$error = "Имя загружаемого изображения не должно быть более 200 символов";
$err_data = 1;
}
IF ($err_data == 1){
ECHO "<div class='file-upload-progress' style='color: red;'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG($error)."</div>";
}ELSE{
$dir = DB::GET_STRING("SELECT `ID` FROM `PHOTOS_DIR` WHERE `USER_ID` = '".$user['ID']."' AND `NAME` = 'Вложения' AND `PRIVATE` = '3' LIMIT 1");
$ID = DB::GET_ADD("INSERT INTO `PHOTOS` (`NAME`, `USER_ID`, `EXT`, `SIZE`, `TIME`, `ID_DIR`) VALUES ('".$FileName."', '".$user['ID']."', '".$Exp."', '".FILESIZE($TempName)."', '".TIME()."', '".$dir['ID']."')");
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `PHOTOS_SHOW` WHERE `PHOTO_ID` = '".$settings['AVATAR']."' AND `USER_ID` = '".$user['ID']."' AND `TYPE` = 'avatar' LIMIT 1") == 1){
DB::GET_SET("DELETE FROM `PHOTOS_SHOW` WHERE `USER_ID` = '".$user['ID']."' AND `PHOTO_ID` = '".$settings['AVATAR']."' AND `TYPE` = 'avatar'");
}
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `PHOTOS_SHOW` WHERE `PHOTO_ID` = '".$ID."' AND `USER_ID` = '".$user['ID']."' AND `TYPE` = 'avatar' LIMIT 1") == 0){
DB::GET_ADD("INSERT INTO `PHOTOS_SHOW` (`USER_ID`, `PHOTO_ID`, `TYPE`) VALUES ('".$user['ID']."', '".$ID."', 'avatar')");
}
//Сохраняем изображение если все хорошо
$CopyFile = COPY($TempName, "".$UploadDir."".$ID.".".$Exp."");
IF (!$CopyFile) {
ECHO "<div class='file-upload-progress' style='color: red;'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG('Неизвестная ошибка')."</div>";
}ELSE{
CROP_IMAGE(ROOT.'/files/upload/photos/source/'.$ID.'.'.$Exp.'', ROOT.'/files/upload/photos/50x50/'.$ID.'.jpg', 50, 50);
CROP_IMAGE(ROOT.'/files/upload/photos/source/'.$ID.'.'.$Exp.'', ROOT.'/files/upload/photos/150x150/'.$ID.'.jpg', 150, 150);
CROP_IMAGE(ROOT.'/files/upload/photos/source/'.$ID.'.'.$Exp.'', ROOT.'/files/upload/photos/240x240/'.$ID.'.jpg', 240, 240);
CROP_IMAGE(ROOT.'/files/upload/photos/source/'.$ID.'.'.$Exp.'', ROOT.'/files/upload/photos/260x600/'.$ID.'.jpg', 600, 260);
DB::GET_SET("UPDATE `USERS_SETTINGS` SET `AVATAR` = '".$ID."' WHERE `USER_ID` = '".$user['ID']."' LIMIT 1");
//Отправляем запрос на обновление аватара если успешно
?>
<script>
var data = "/id<?=$user['ID']?>";
var toLoad = data+' #avatar_upgrade';
open_modal = 0;
$("#avatar_upgrade").load(toLoad);
$("#avatar").removeClass("open");
setTimeout( function(){
$("#avatar").parents(".overlay").removeClass("open");
}, 5);
$('#upload-avatar-show').html('');
</script>
<?
}
}
}ELSE{
REDIRECT('/index');
}
?>