Файл: 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');
?>