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) .' МБ';
}
}
}
?>