Файл: panel/upload.php
Строк: 94
<?php
/**
* Author: Elime;
* ICQ: 618878;
* E-mail: elime4@gmail.com;
*/
require '../system/core.php';
/* Проверка прав доступа */
if(!$login) message('Ошибка авторизации!', '/panel/login.php');
if(!check_right($user['id'], 1, $db)) message('Недостаточно прав!', '/panel/index.php');
/* Если выбран файл и заполены поля */
if(isset($_POST['name']) and isset($_FILES['file']['name']) and isset($_POST['cat']))
{
/* Переменные по-умолчанию */
$name = in($_POST['name']);
$file = in($_FILES['file']['name']);
$tag = in($_POST['tag']);
$description = '';
$keywords = '';
$about = '';
$cat = num($_POST['cat']);
/* Ищем указанную категорию */
$query = $db->query("SELECT * FROM `categories` WHERE `id`='".$cat."'");
if($db->num($query) != 1)
{
message('Указанная категория не найдена!');
}
$category = $db->fetch($query);
/* Проверяем пустоту полей */
if(empty($name))
{
message('Название видеофайла должно быть заполнено!');
}
if(empty($file))
{
message('Вы не выбрали видеофайл!');
}
/* Если есть ошибка при загрузке */
if($_FILES['file']['error'])
{
message('При загрузке файла произошла ошибка! Подробности: '.$_FILES['file']['error']);
}
/* Проверяем пустоту необязательных полей */
if(!empty($_POST['description']))
{
$description = in($_POST['description']);
}
if(!empty($_POST['keywords']))
{
$keywords = in($_POST['keywords']);
}
if(!empty($_POST['about']))
{
$about = in($_POST['about']);
}
/* Проверка длины строк */
if(mb_strlen($name, 'utf-8') > 100)
{
message('Название видеофайла не может быть больше 100 символов!');
}
if(mb_strlen($description, 'utf-8') > 255)
{
message('Описание (meta) должно быть не больше 255 символов!');
}
if(mb_strlen($keywords, 'utf-8') > 255)
{
message('Ключевые слова (meta) должны быть не больше 255 символов!');
}
if(mb_strlen($about, 'utf-8') > 500)
{
message('Описание видеозаписи должно быть не больше 500 символов!');
}
/* Пути */
$info = pathinfo($file);
$extension = $info['extension'];
$translit_name = translit($name);
$dir = 'files/'.$category['translit'].'/'.$translit_name;
$translit = $category['translit'].'/'.$translit_name;
$url_file = $dir.'/'.$config['prefix'].$translit_name.'.'.$extension;
/* Проверка фаормата файла */
if($extension != '3gp' and $extension != 'mp4')
{
message('К загрузке допускаются только файлы формата 3gp и mp4!');
}
/* Если такая папка уже существует */
if(file_exists(ROOT.'/'.$dir))
{
message('Папка с именем <b>'.$dir.'</b> уже существует!');
}
/* Создаем папку */
if(!mkdir(ROOT.'/'.$dir, 0777))
{
message('Произошла ошибка при создании папки '.$dir.' !');
}
chmod(ROOT.'/'.$dir, 0777);
/* Копируем файл */
if(!copy($_FILES['file']['tmp_name'], ROOT.'/'.$url_file))
{
unlink(ROOT.'/'.$dir);
message('Ошибка при копировании файла!');
}
/* Создаем объект ffmpeg */
$video = new ffmpeg_movie(ROOT.'/'.$url_file);
/* Длительность видео в секундах */
$duration = round($video->getDuration());
/* Размер файла в байтах */
$size = $_FILES['file']['size'];
/* Записываем информацию о файле в БД */
$db->query("INSERT INTO `data` SET `cat_id`='".$cat."', `name`='".$name."', `translit`='".$translit."', `about`='".$about."', `description`='".$description."', `keywords`='".$keywords."', `duration`='".$duration."', `size`='".$size."', `format`='".$extension."', `screen_size`='".$screen_size."', `like`='0', `download`='0', `file`='".in($url_file)."', `mini_scr`='".$scr_mini."', `scr`='".$scr."', `add_time`='".time()."', `tag`='".$tag."'");
/* Записываем в логи кто загрузил новый видеофайл */
$action = $user['login'].' загрузил новый видеофайл: "'.$name.'".';
$db->query("INSERT INTO `users_log` SET `user_id`='".$user['id']."', `action`='".in($action)."', `time`='".time()."'");
/* Выводим сообщение */
message('Файл успешно загружен!', '/panel/index.php');
}
/* Получаем список категорий */
$select_cat = $db->query("SELECT * FROM `categories`");
$cat_array = array();
while($result = $db->fetch($select_cat))
{
$result['name'] = out($result['name']);
$cat_array[] = $result;
}
/* Выводим страницу */
$data['title'] = 'Загрузить файл';
$data['cat_result'] = $cat_array;
$tpl->display('panel/upload', $data);
?>