Вход Регистрация
Файл: panel/upload.php
Строк: 113
<?php
/**
*    Author: Elime;
*    ICQ: 618878;
*    E-mail: elime4@gmail.com;
*/

require '../system/core.php';


/* Проверка прав доступа */
if(!$loginmessage('Ошибка авторизации!''/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.'/'.$dir0777))
    {
        
message('Произошла ошибка при создании папки '.$dir.' !');
    }
    
chmod(ROOT.'/'.$dir0777);
    
    
    
/* Копируем файл */
    
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'];
    
    
    
/* Размеры */
    
$width $video->getFrameWidth();
    
$height $video->getFrameHeight();
    
$screen_size $width.'x'.$height;
    

    
/* Пути к скриншотам */
    
$scr_mini $dir.'/screen_mini.jpg';
    
$scr $dir.'/screen.jpg';

    
    
/* Создаем скриншот */
    
$frame_count $video->getFrameCount();
    
$frame intval($frame_count 2);
    
$select $video->getFrame($frame);
    if(
$select)
    {
        
$screen $select->toGDImage();
        
imagejpeg($screenROOT.'/'.$scr100);
        
imagedestroy($screen);
        
imageresize(ROOT.'/'.$scrROOT.'/'.$scr480480100);
        
imageresize(ROOT.'/'.$scrROOT.'/'.$scr_mini200200100);    }
    else
    {
        
$frame intval($frame_count 3);
        
$select $video->getFrame($frame);
        if(!
$select)
        {
            unset(
$video);
            
remove_dir(ROOT.'/'.$dir);
            
message('Невозможно создать скриншот для этого видео! Загрузите другое видео!');
        }
        
        
$screen $select->toGDImage();
        
imagejpeg($screenROOT.'/'.$scr85);
        
imagedestroy($screen);
        
imageresize(ROOT.'/'.$scrROOT.'/'.$scr200200100);
    }

    

    
    
/* Записываем информацию о файле в БД */
    
$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);
?>
Онлайн: 3
Реклама