Файл: CMS/core/modules/forum_addfile.php
Строк: 65
<?php
if (!defined('CMS')) { die('Access Denied!'); }
// Get dir size
function dir_size($dir) {
$sz = 0;
if ($str = @opendir($dir)) {
while (($fnm = readdir($str)) !== false) {
if ($fnm[0] != '.') {
if (is_file($dir . '/' . $fnm)) {
$sz += filesize($dir . '/' . $fnm);
} else if (is_dir($dir . '/' . $fnm)) {
$sz += dir_size($dir . '/' . $fnm);
}
}
}
}
closedir($str);
return $sz;
}
if ($is_logged) {
$row = $db->selectRow( "SELECT * FROM ?_forums_posts WHERE `posts_id` = ? LIMIT 1;", $id );
if (!empty($row)) {
$tid = intval($row['posts_topics_id']);
if ($is_admin || $config['downupload'] == 1) {
if (!empty($mod) && $mod == 'del_file') {
if (!empty($row['posts_file'])) {
if ($row['posts_user'] == $log || $is_admin) {
if (!empty($row['posts_file']) && file_exists(FORUM_FILES_PATH . $row['posts_file'])) {
unlink(FORUM_FILES_PATH . $row['posts_file']);
}
$db->query("UPDATE ?_forums_posts
SET `posts_file` = '', `posts_file_size` = '0', `posts_file_time` = '0', `posts_file_load` = '0'
WHERE `posts_id` = ?;", $id);
$inSes->addMessage('Файл ' . $row['posts_file'] . ' успешно удален!', 'ok');
}
else {
$inSes->addMessage('Ошибка! Удаление невозможно, вы не автор данного файла!');
}
}
else {
$inSes->addMessage('Ошибка! Данного файла не существует!');
}
gen_red('topic', $tid, 'page=' . $page . '&' . UID);
}
else {
if ($row['posts_user'] == $log || $is_admin) {
if (empty($_FILES) === false) {
$temp_name = $_FILES['file']['tmp_name'];
$file_name = $_FILES['file']['name'];
$file_type = $_FILES['file']['type'];
$file_size = @round(($_FILES['file']['size']) / 1024); // kb
$result = $_FILES['file']['error'];
$error = '';
if (!empty($row['posts_file'])) {
$error = 'Файл ' . $row['posts_file'] . ' уже имеется в базе!';
}
else if (round((dir_size(FORUM_FILES_PATH) + $file_size) / 1048576) > $config['max_dir_upload']) {
$error = 'Превышен максимальный объём файлов!';
}
else if (!$file_name) {
$error = 'Не выбран файл для загрузки';
}
else if (file_exists(FORUM_FILES_PATH . $file_name)) {
$error = 'Файл ' . $file_name . ' уже имеется в общих файлах!';
}
else if ($_FILES['file']['size'] > 0 && $_FILES['file']['size'] > $config['fileupload']) {
$error = 'Максимальный размер загружаемого файла ' . formatsize($config['fileupload']) . '!';
}
else if (!in_array(strtolower(pathinfo($file_name, PATHINFO_EXTENSION)), explode(',', $config['allowextload']))) {
$error = 'Недопустимое расширение файла!';
}
else if (!move_uploaded_file($temp_name, FORUM_FILES_PATH . $file_name) || !filesize(FORUM_FILES_PATH . $file_name)) {
$error = 'Не удалось загрузить файл!';
}
if (!empty($error)) {
$inSes->addMessage('Ошибка! ' . $error, 'error');
}
else {
@chmod(FORUM_FILES_PATH . $file_name, 0644);
$db->query("UPDATE ?_forums_posts SET `posts_file` = ?, `posts_file_size` = ?, `posts_file_time` = ?
WHERE `posts_id` = ?;", $file_name, $_FILES['file']['size'], SITE_TIME, $id);
$inSes->addMessage('Файл успешно загружен!', 'ok');
}
gen_red('topic', $tid, 'page=' . $page . '&' . UID);
}
show_header('Прикрепление файла');
$form = new cmsForm(gen_uri('add_file', $id, 'rnd=' . $_SESSION['token'] . '&' . UID), 'post');
$form->addFile(blink('*') . 'Прикрепить файл:', 'file');
echo $form->Submit('Загрузить');
unset($form);
}
else {
$inSes->addMessage('Изменение невозможно, вы не автор данного файла!');
gen_red('topic', $id, 'page=' . $page . '&' . UID);
}
}
}
else {
show_header('Прикрепление файла - ' . FORUM_TITLE);
show_error('Возможность добавление файлов запрещена администрацией сайта');
}
echo '<div class="b">';
echo '<a href="#up">' . icon('up.png') . '</a> ';
echo '<a href="' . gen_uri('smiles', '', UID) . '">Смайлы</a> / ';
echo '<a href="' . gen_uri('tags', '', UID) . '">Теги</a> / ';
echo '<a href="' . gen_uri('rules', '', UID) . '">Правила</a><br /></div>';
echo '<div class="b">' . icon('back.gif');
echo ' <a href="' . gen_uri('topic', $tid, 'page=' . $page . '&' . UID) . '">Вернуться</a><br /></div>';
}
else {
show_header('Прикрепление файла - ' . FORUM_TITLE);
show_error('Ошибка! Выбранное вами сообщение не найдено!');
}
}
else {
show_header('Прикрепление файла - ' . FORUM_TITLE);
show_login('Вы не авторизованы, для добавления файла, необходимо');
}
?>