Вход Регистрация
Файл: files/receiver/attachments_photos.php
Строк: 40
<?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']) && !EMPTY(HTTP_X_REQUESTED_WITH) && STRTOLOWER(HTTP_X_REQUESTED_WITH) == 'xmlhttprequest' || ISSET($_FILES['file']) && !EMPTY(HTTP_X_REQUESTED_WITH) && STRTOLOWER(HTTP_X_REQUESTED_WITH) == 'XMLHttpRequest'){
  
  IF (
GET('type') == 'blogs'){
    
    
$ts = "BLOGS";
  
  }ELSEIF (
GET('type') == 'news'){
    
    
$ts = "NEWS";
  
  }ELSE{
    
    
$ts = "COMMENTS";
  
  }
  
  
//Максимальный размер для выгрузки
  
$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($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;
  
  }
  
  IF (
DB::GET_COLUMN("SELECT COUNT(*) FROM `ATTACHMENTS` WHERE `".$ts."` = '1' AND `USER_ID` = '".$user['ID']."' AND `ACT` = '0' LIMIT 1") >= 3){
    
    
$error = "Нельзя прикреплять более 3 файлов к 1 объекту";
    
$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 (
DB::GET_COLUMN("SELECT COUNT(*) FROM `ATTACHMENTS` WHERE `USER_ID` = '".$user['ID']."' AND `ACT` = '0'") >= 3){

    
$error = "Нельзя прикрепить более 3 файлов к 1 сообщению";
    
$err_data = 1;
    
  }
  
  IF (!
GET('url')) {
    
    
$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` = '".$ID."' AND `USER_ID` = '".$user['ID']."' AND `TYPE` = 'atcom' LIMIT 1") == 0){
      
      
DB::GET_ADD("INSERT INTO `PHOTOS_SHOW` (`USER_ID`, `PHOTO_ID`, `TYPE`) VALUES ('".$user['ID']."', '".$ID."', 'atcom')");
      
    }
    
    
DB::GET_ADD("INSERT INTO `ATTACHMENTS` (`USER_ID`, `OBJECT_ID`, `TYPE`, `TIME`, `".$ts."`, `ID_POST`) VALUES ('".$user['ID']."', '".$ID."', 'photos', '".TIME()."', '1', '0')");
    
    
//Сохраняем изображение если все хорошо
    
$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);
      
      
//Отправляем запрос на обновление листа если успешно
      
$url = BASE64_DECODE(GET('url')); 
      
      
?>
      <script>
      var data = "<?=$url?>";
      
      var toLoad = data+' #atcom-upgrade';
      
      open_modal = 0;
      
      $("#atcom-upgrade").load(toLoad); 
      
      $("#at_comment").removeClass("open");
      
      setTimeout( function(){    
        
        $("#at_comment").parents(".overlay").removeClass("open");
      
      }, 5);
      
      $('#upload-atcom-show').html('');
      
      </script>  
      <?
    
    
}
  
  }
  
}ELSE{
  
  
REDIRECT('/index');

}
 
?>
Онлайн: 1
Реклама