$video = new ffmpeg_movie(ROOT.'/'.$url_file);
$duration = round($video->getDuration());
$size = filesize(ROOT.'/'.$url_file);
$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($screen, ROOT.'/'.$scr, 100);
imagedestroy($screen);
imageresize(ROOT.'/'.$scr, ROOT.'/'.$scr, 480, 480, 100);
}
else
{
$frame = intval($frame_count / 3);
$select = $video->getFrame($frame);
if (!$select)
{
unset($video);
remove_dir(ROOT.'/'.$dir);
message('Невозможно создать скриншот для этого видео! Загрузите другое видео!');
}
$screen = $select->toGDImage();
imagejpeg($screen, ROOT.'/'.$scr, 85);
imagedestroy($screen);
imageresize(ROOT.'/'.$scr, ROOT.'/'.$scr, 480, 480, 100);
}
imageresize(ROOT.'/'.$scr, ROOT.'/'.$scr_mini, 200, 200, 100);
<?php
include '../system/core.php';
if (!$login) message('Нет такой страницы или файл не найден', '/');
if (!check_right($user['id'], 1, $mysqli)) message('Недостаточно прав!', '/panel/index.php');
if (isset($_POST['name']) and isset($_POST['link']) and isset($_POST['cat']))
{
$publish = strtotime($_POST['publish']) + rand(300, 21600);
$name = in($_POST['name']);
$tag = in($_POST['tag']);
$description = '';
$about = '';
$cat = num($_POST['cat']);
$link=$_POST['link'];
$type_file=strrpos($link, ".");
$type_file=substr($link, $type_file + 1, 999);
$type_file = strtolower($type_file);
if ($type_file=='mp4' || $type_file=='3gp' || $type_file=='avi' || $type_file=='flv')
{
$link=$_POST['link'];
}
else{
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_exec($ch);
$header = curl_getinfo( $ch );
curl_close( $ch );
$link=$header["redirect_url"];
$type_file=strrpos($link, ".");
$type_file=substr($link, $type_file + 1, 999);
$type_file = strtolower($type_file);
}
$category = $mysqli -> query("SELECT * FROM `categories` WHERE `id`='".$cat."'") -> fetch_assoc();
if (!$category)
{
message('Указанная категория не найдена!');
}
if (empty($name))
{
message('Название видеофайла должно быть заполнено!');
}
if (empty($link))
{
message('Вы не ввели ссылку!');
}
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') > 2000)
{
message('Описание (meta) должно быть не больше 2000 символов!');
}
if (mb_strlen($about, 'utf-8') > 5000)
{
message('Описание видеозаписи должно быть не больше 5000 символов!');
}
$translit_name = translit($name);
$dir = 'files/'.$category['translit'].'/'.$translit_name;
$translit = $category['translit'].'/'.$translit_name;
$url_file = $dir.'/'.$config['prefix'].$translit_name.'.'.$type_file;
if (file_exists(ROOT.'/'.$dir))
{
message('Папка с именем <b>'.$dir.'</b> уже существует!');
}
if (!mkdir(ROOT.'/'.$dir, 0777))
{
message('Произошла ошибка при создании папки '.$dir.' !');
}
chmod(ROOT.'/'.$dir, 0777);
if (!copy($link, ROOT.'/'.$url_file))
{
unlink(ROOT.'/'.$dir);
message('Ошибка при копировании файла!');
}
$video = new ffmpeg_movie(ROOT.'/'.$url_file);
$duration = round($video->getDuration());
$size = filesize(ROOT.'/'.$url_file);
$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($screen, ROOT.'/'.$scr, 100);
imagedestroy($screen);
imageresize(ROOT.'/'.$scr, ROOT.'/'.$scr, 480, 480, 100);
}
else
{
$frame = intval($frame_count / 3);
$select = $video->getFrame($frame);
if (!$select)
{
unset($video);
remove_dir(ROOT.'/'.$dir);
message('Невозможно создать скриншот для этого видео! Загрузите другое видео!');
}
$screen = $select->toGDImage();
imagejpeg($screen, ROOT.'/'.$scr, 85);
imagedestroy($screen);
imageresize(ROOT.'/'.$scr, ROOT.'/'.$scr, 480, 480, 100);
}
imageresize(ROOT.'/'.$scr, ROOT.'/'.$scr_mini, 200, 200, 100);
$mysqli->query("INSERT INTO `data` SET `cat_id`='".$cat."', `name`='".$name."', `translit`='".$translit."', `about`='".$about."', `description`='".$description."', `keywords`='".$tag."', `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.'".';
$mysqli->query("INSERT INTO `users_log` SET `user_id`='".$user['id']."', `action`='".in($action)."', `time`='".time()."'");
message('Файл успешно загружен!', '/panel/index.php');
}
$select_cat = $mysqli -> query("SELECT * FROM `categories`");
$cat_array = array();
while($result = $select_cat -> fetch_assoc()) {
$result['name'] = out($result['name']);
$cat_array[] = $result;
}
$data['title'] = 'Загрузить файл';
$data['cat_result'] = $cat_array;
$tpl->display('panel/import', $data);
$mysqli -> close();
?>