Вход Регистрация
Файл: down/add_file.php
Строк: 81
<?php

require_once ('../includes/start.php');
require_once (
'../includes/functions.php');
require_once (
'../includes/header.php');
include_once (
'../themes/header.php');

include_once (
'core/fun.php');

$id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : '';
$act = isset($_GET['act']) ? check($_GET['act']) : '';
if (
is_user()) {

    switch (
$act):
        default :
            
$dir DB::run()->queryFetch("SELECT * FROM `downloads_category` WHERE id = ? AND upload != 1;", array ($_GET['id']));

            if (!empty(
$dir)) {
                echo 
'<div class="form">';
                echo 
'<form action="add_file.php?act=upload&amp;id=' $dir['id'] . '&amp;uid=' $_SESSION['token'] . '" method="post" enctype="multipart/form-data">';
                echo 
'Категория: <b>' $dir['name'] . '</b><br />';
                echo 
'Название файла:*:<br />';
                echo 
'<input type="text" name="name" size="50" maxlength="50" /><br />';
                echo 
'Файл (' $config['allowextload'] . '):<br /><input type="file" name="loadfile" /><br />';
                echo 
'Описание*:<br />';
                echo 
'<textarea cols="65" rows="5" name="description"></textarea><br />';
                echo 
'<input value="Добавить" type="submit" /></form></div><br />';
            } else {
                
show_error('Папка не найдена, либо не предназначена для выгрузки файлов пользователями в нее');
            }
            break;

        case 
'upload':

            
$uid check($_GET['uid']);
            
$id abs(intval($_GET['id']));
            
$name check($_POST['name']);
            
$description check($_POST['description']);

            
//var_dump($_FILES);

            
if ($uid == $_SESSION['token']) {
                if (
utf_strlen($name) >= && utf_strlen($name) <= 50) {
                    if (
utf_strlen($description) <= 5000) {
                        if (
is_uploaded_file($_FILES['loadfile']['tmp_name'])) {
                            
$filename check(strtolower($_FILES['loadfile']['name']));

                            if (
strlen($filename) <= 80) {
                                if (
preg_match('|^[a-z0-9_.-]+$|i'$filename)) {
                                    
$arrext explode(','$config['allowextload']);
                                    
$ext getExtension($filename);

                                    if (
in_array($ext$arrext) && $ext != 'php') {
                                        if (!
preg_match('/.(php|pl|cgi|phtml|htaccess)/i'$filename)) {
                                            if (
$_FILES['loadfile']['size'] > && $_FILES['loadfile']['size'] <= $config['fileupload']) {
                                                
$description no_br($description);
                                                
DB::run()->query("INSERT INTO `downloads_files` (`id`, `category`, `title`, `date`, `author`, `description`, `size`) VALUES (?, ?, ?, ?, ?, ?, ?);", array (null$id$nameSITETIME$log$description$_FILES['loadfile']['size']));
                                                
$file_id DB::run()->lastInsertId();

                                                
$directory_path get_path($id);
                                                
$realpath get_realpath($directory_path);
                                                
$realpath = ($realpath != '' $realpath '/' '') . ($id == '' $id '/');

                                                
// Создание папки для файла
                                                
mkdir(BASEDIR '/down/files/' $realpath $file_id);
                                                
chmod(BASEDIR '/down/files/' $realpath $file_id0777);
                                                
$path_to_file 'down/files/' . ($realpath != '' $realpath '') . $file_id '/';
                                                
$file_path BASEDIR '/' $path_to_file $_FILES['loadfile']['name'];

                                                
move_uploaded_file($_FILES['loadfile']['tmp_name'], $file_path);
                                                
DB::run()->query("UPDATE `downloads_files` SET `file` = ?, `path_to_file` = ? WHERE `id` = ?", array ($filename$path_to_file$file_id));

                                                
$_SESSION['note'] = 'Файл успешно загружен!';
                                                
redirect("get_file.php?id=" $file_id);
                                            } else {
                                                
show_error('Ошибка! Максимальный размер загружаемого файла ' formatsize($config['fileupload']) . '!');
                                            }
                                        } else {
                                            
show_error('Ошибка! В названии файла присутствуют недопустимые расширения!');
                                        }
                                    } else {
                                        
show_error('Ошибка! Недопустимое расширение файла!');
                                    }
                                } else {
                                    
show_error('Ошибка! В названии файла присутствуют недопустимые символы!');
                                }
                            } else {
                                
show_error('Ошибка! Слишком длинное имя файла (не более 50 символов)!');
                            }
                        } else {
                            
show_error('Ошибка! Не удалось загрузить файл!');
                        }
                    } else {
                        
show_error('Ошибка! Слишком длинный или короткий текст описания (от 10 до 5000 символов)!');
                    }
                } else {
                    
show_error('Ошибка! Слишком длинное или короткое название (от 5 до 50 символов)!');
                }
            } else {
                
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
            }

            echo 
'<img src="/images/img/back.gif" alt="image" /> <a href="add_file.php?id=' $id '">Вернуться</a><br />';

            break;

    endswitch;
} else {
    
show_login('Вы не авторизованы, для добавления файла, необходимо');
}
include_once (
'../themes/footer.php');
Онлайн: 0
Реклама