View file modules/index_page/helpers/index_page_helper.php

File size: 3.87Kb
<?
/**
 * Автор скрипта Орёл
 * Распространение бесплатно
 * icq: 952042
 * E-mail [email protected]
 */

defined('IN_ACCESS') or die('<b>Доступ закрыт =)</b>');

class index_page_helper{
        function __construct(){}

        /**
         * Процесс загрузки
         * @return string
         */
        static function proccess_load($swf_upload = 0){
                $errors = array();

                if ($swf_upload){
                        $_FILES['upload'] = $_FILES['Filedata'];
                }

                if ($_FILES['upload']['name'] && $_FILES['upload']['size']){
                        $config = Registry :: get('config');
                        
                        if ($_FILES['upload']['size'] > $config['max_upload_byte']){
                                unlink($_FILES['upload']['tmp_name']);
                                $errors[] = 'Превышен максимальный размер загружаемого файла';
                        }
                        if (!empty($_POST['pswd'])){
                                if (strlen($_POST['pswd']) < 1 || strlen($_POST['pswd'] > 16)){
                                        $errors[] = 'Пароль должен состоять от 1 до 16 символов';
                                }
                        }
                        if (strlen($_POST['about']) > 255){
                                $errors[] = 'Описание не должно привышать 255 символов';
                        }
                        if (stripos($_FILES['upload']['name'], '.php') !== false){
                                $errors[] = 'Запрещённый формат файла';
                        }

                        if ($_POST['about']){
                                $about = htmlspecialchars($_POST['about']);
                        }
                        if ($_POST['pswd']){
                                $pswd = md5($_POST['pswd']);
                        }
                        
                        $name_file = htmlspecialchars($_FILES['upload']['name']);

                        preg_match('|.*(\.[a-z0-9]{2,6})|', $_FILES['upload']['name'], $format);

                        if (empty($errors)){
                                $file_nameserver = md5(mt_rand(11111, 99999) . mt_rand(111111, 999999)) . $format[1];

                                if (copy($_FILES['upload']['tmp_name'], ROOT .'files/'. $file_nameserver)){
                                        DB :: $dbh->query('INSERT INTO `files` (`file_name`,`file_pswd`,`file_about`,`file_nameserver`,`file_size`,`file_timedown`) VALUES(?,?,?,?,?,?)', array($name_file, $pswd ? $pswd : null, $_POST['about'], $file_nameserver, $_FILES['upload']['size'], SITETIME));
                                        return DB :: $dbh->LastInsertid();
                                } else {
                                        $errors[] = 'Произошла неизвесная ошибка';
                                }

                        }
                } else {
                        $errors[] = 'Неизвесная ошибка или файл не выбран';
                }

                if ($swf_upload && !empty($errors)){
                        $errors = implode('<br />', $errors);
                }

                return $errors;
        }

        static function sizeview($bytes){
                if ($bytes < 1024){
                        return $bytes .' Байт';
                } elseif ($bytes > 1024 && $bytes < 1024*1000){
                        return round($bytes/1024, 1) .' КБ';
                } elseif ($bytes > 1024*1000){
                        return round($bytes/1024/1024, 2) .' МБ';
                }
        }
}
?>