View file files/receiver/voice.php

File size: 2.22Kb
<?php
  
/*
------------------------------------------------
Прикрепление голосовых сообщений

AlphaCMS - универсальный движок для вашего сайта
E-mail администрации проекта: adm@alpha-cms.ru
Официальный сайт поддержки: alpha-cms.ru
Руководитель проекта: adm (ID 1)
------------------------------------------------
*/
  
require ($_SERVER['DOCUMENT_ROOT'].'/system/connections/core.php');
access('users');

if (isset($_FILES)) {
  
  //Директория в которую будут загружены файлы
  $uploadDir = ROOT."/files/upload/voices/";
  
  //Принудительно устанавливаем права 755 на директории
  @chmod(ROOT."/files/upload/voices/", 0755);
  
  //Определяем тип
  $type = tabs(esc(get('type')));
  $id = intval(get('id'));
  $duration = tabs(esc(get('duration')));

  $typeFile = explode('/', $_FILES['voice']['type']);
  
  if ($typeFile[1] != 'wav') {
    
    echo lg('Неизвестная ошибка');
    exit(); 
  
  }
  
  $fileName = basename(md5($_FILES['voice']['tmp_name'].time()).'.wav');  
  $uploadFile = $uploadDir.$fileName;
  
  if (move_uploaded_file($_FILES['voice']['tmp_name'], $uploadFile)) {

    $ID = db::get_add("INSERT INTO `VOICES` (`NAME`, `USER_ID`, `DURATION`) VALUES (?, ?, ?)", [$fileName, user('ID'), $duration]); 
    
    $response = ['result' => 'OK', 'data' => '../'.$uploadFile];
  
  }else{
    
    $response = ['result' => 'ERROR', 'data' => ''];
  
  }
  
  echo json_encode($response); 
  
  if ($id == 0) {
    
    db::get_add("INSERT INTO `ATTACHMENTS` (`USER_ID`, `OBJECT_ID`, `TYPE`, `TYPE_POST`, `TIME`, `ID_POST`, `ACT`) VALUES (?, ?, ?, ?, ?, ?, ?)", [user('ID'), $ID, 'voices', $type, TM, 0, 0]);
  
  }else{
    
    db::get_add("INSERT INTO `ATTACHMENTS` (`USER_ID`, `OBJECT_ID`, `TYPE`, `TYPE_POST`, `TIME`, `ID_POST`, `ACT`) VALUES (?, ?, ?, ?, ?, ?, ?)", [user('ID'), $ID, 'voices', $type, TM, $id, 1]);
  
  }

}else{
  
  ?>
  <div class='file-error'><?=icons('exclamation-triangle', 16)?> <?=lg('Не удалось установить соединение с ресивером')?></div>
  <?

}