Файл: soc-set/moduls/loads/upload.php
Строк: 113
<?php
require_once('../../core/start.php');
require_once('func.php');
check_auth();
$folder = DB::$dbs->queryFetch("SELECT * FROM ".LOADS." WHERE `id` = ? ", array(abs(num($_GET['folder']))));
if (empty($folder)) {
head('Каталог не найден');
echo DIV_TITLE . 'Каталог не найден' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/loads/">Загрузки</a> / <b>Каталог не найден</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
$folderc = DB::$dbs->queryFetch("SELECT * FROM ".LOADS_CAT." WHERE `id` = ? ", array(abs(num($_GET['folderc']))));
if (empty($folderc)) {
head('Подкаталог не найден');
echo DIV_TITLE . 'Подкаталог не найден' . CLOSE_DIV;
echo DIV_ERROR . 'Ошибка!' . CLOSE_DIV;
echo DIV_GO . '<a href="'.HOME.'/">Главная</a> / <a href="'.HOME.'/loads/">Загрузки</a> / <b>Подкаталог не найден</b>' . CLOSE_DIV;
require_once('../../core/stop.php');
exit();
}
/* **** */
head('Загрузка файла');
echo DIV_TITLE . 'Загрузка файла' . CLOSE_DIV;
if (!empty($_POST['upload'])) {
$new_name = html($_POST['name']);
$info = html($_POST['info']);
$lang = html($_POST['lang']);
/* Загрузка файла */
/*if (isset($_FILES['file']['name'])) {
echo translit($_FILES['file']['name']) . '<br /><br />';
}*/
$whitelist = type($folder['type']);
$name = html($_FILES['file']['name']);
$ext = strtolower(strrchr($name, '.')); # Расширение файла
$size = $_FILES['file']['size'];
if (preg_match('/.phtml/i', $name) || preg_match('/.php/i', $name) || preg_match('/.pl/i', $name) || $name == '.htaccess' || !in_array($ext, $whitelist)) {
echo 'Не верное расширение файла.<br />';
require_once('../../core/stop.php');
exit();
}
/* Имя файла при отображении */
if (!empty($new_name)) {
$view_name = $new_name;
} else {
$view_name = html($name);
}
/* Если это музыка, то... */
if ($folder['type'] == 3) {
$artist = html($_POST['artist']);
$track = html($_POST['track']);
$album = html($_POST['album']);
if (empty($artist)) {
$err .= 'Заполните поле "Исполнитель"<br />';
}
if (empty($track)) {
$err .= 'Заполните поле "Название"<br />';
}
}
/* Генерируем название файла */
if ($folder['type'] == 1) {
$name_file = SITE . '_' . time().$ext;
} else {
$name_file = time().$ext;
}
if (empty($info)) {
$info = '';
}
if (empty($lang)) {
$lang = '';
}
if (empty($artist)) {
$artist = '';
}
if (empty($track)) {
$track = '';
}
if (empty($album)) {
$album = '';
}
if (!empty($err)) {
echo DIV_BLOCK . $err . CLOSE_DIV;
} else {
copy($_FILES['file']['tmp_name'], '../../files/loads/files/'.$name_file);
/* Запись в БД */
DB::$dbs->query("INSERT INTO ".LOADS_FILE." (`folder_id`, `folderc_id`, `name`, `url`, `time`, `size`, `type`, `info`, `lang`, `artist`, `track`, `album`, `loads`, `rating`, `user_id`) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", array($folder['id'], $folderc['id'], $view_name, $name_file, time(), $size, $ext, $info, $lang, $artist, $track, $album, 0, 0, $user['user_id']));
$lastid = DB::$dbs->lastInsertId();
if ($folder['type'] == 1) {
img_resize('../../files/loads/files/'.$name_file, '../../files/loads/files/mini_'.$name_file, 100, 100);
}
/* Загрузка скриншотов */
if (isset($_FILES['screen']['name'])) {
foreach ($_FILES['screen']['name'] as $k=>$v) {
$name = $_FILES['screen']['name'][$k];
$ext = strtolower(strrchr($name, '.')); # Расширение файла
if (preg_match('/.php/i', $name) || preg_match('/.pl/i', $name) || $name == '.htaccess' || !in_array($ext, type(1))) {
} else {
$name_screen = md5(time() . rand(1,100)).$ext;
copy($_FILES['screen']['tmp_name'][$k], '../../files/loads/screen/'.$name_screen);
DB::$dbs->query("INSERT INTO ".LOADS_SCREEN." (`file_id`, `url`) VALUES (?,?)", array($lastid, $name_screen));
}
}
}
/* Создание скринщотов из видео */
/*
if ($folder['type'] == 2) {
$location = 'screen/'.mt_rand(1000,9999).'.jpg';
if(!file_exists($location)){ // если скриншот не был создан до этого, создаем его
$mov = new ffmpeg_movie('../../files/loads/files/' . $name_file, false);
$wn = $mov->GetFrameWidth();
$hn = $mov->GetFrameHeight();
// считаем кол-во кадров
$all_frames = $mov->getFrameCount();
// номер кадра
$frame1 = $mov->getFrame(mt_rand(10,$all_frames));
$frame2 = $mov->getFrame(mt_rand(10,$all_frames));
$frame3 = $mov->getFrame(mt_rand(10,$all_frames));
$gd1 = $frame1->toGDImage();
$gd2 = $frame2->toGDImage();
$gd3 = $frame3->toGDImage();
$W = $wn; // ширина картинки
$H = $hn; // высота картинки
$new1 = imageCreateTrueColor($W, $H);
imageCopyResampled($new1, $gd1, 0, 0, 0, 0, $W, $H, $wn, $hn);
imageJPEG($new1, $location); // сохраняем по пути $location
$new2 = imageCreateTrueColor($W, $H);
imageCopyResampled($new2, $gd2, 0, 0, 0, 0, $W, $H, $wn, $hn);
imageJPEG($new2, $location); // сохраняем по пути $location
$new3 = imageCreateTrueColor($W, $H);
imageCopyResampled($new3, $gd3, 0, 0, 0, 0, $W, $H, $wn, $hn);
imageJPEG($new3, $location); // сохраняем по пути $location
}
}
*/
header("Location: ".HOME."/loads/".$folder['id']."/".$folderc['id']."/".$lastid."/");
}
}
/* *** */
require_once('../../core/stop.php');
?>