Просмотр файла download/include/file_more.php

Размер файла: 9.51Kb
  1. <?php
  2.  
  3.  
  4. $sql->query("SELECT * FROM `down_files` WHERE `id` = '$id' AND (`type` = 2 OR `type` = 3) LIMIT 1");
  5. $res_down = $sql->fetch();
  6. if ($sql->num_rows() == 0 || !is_file($res_down['dir'] . '/' . $res_down['name']) || !$admin) {
  7. include H.'engine/includes/head.php';
  8. echo display_error('<a href="index.php">К категориям</a>');
  9. include H.'engine/includes/foot.php';
  10.  
  11. }
  12.  
  13. $set['title'] = $res_down['rus_name'];
  14. include H.'engine/includes/head.php';
  15.  
  16. $upload_max_filesize=ini_get('upload_max_filesize');
  17. if (preg_match('#([0-9]*)([a-z]*)#i',$upload_max_filesize,$varrs))
  18. {
  19. if ($varrs[2]=='M')$upload_max_filesize=$varrs[1]*1048576;
  20. elseif ($varrs[2]=='K')$upload_max_filesize=$varrs[1]*1024;
  21. elseif ($varrs[2]=='G')$upload_max_filesize=$varrs[1]*1024*1048576;
  22. }
  23.  
  24. $al_ext = array('rar', 'zip', 'pdf', 'nth', 'txt', 'tar', 'gz', 'jpg', 'jpeg', 'gif', 'png', 'bmp', '3gp', 'mp3', 'mpg', 'sis', 'thm', 'jar', 'jad', 'cab', 'sis', 'sisx', 'exe', 'msi');
  25. $del = isset($_GET['del']) ? abs(intval($_GET['del'])) : false;
  26. $edit = isset($_GET['edit']) ? abs(intval($_GET['edit'])) : false;
  27. if ($edit) {
  28. $name_link = isset($_POST['name_link']) ? check(mb_substr($_POST['name_link'], 0, 200)) : null;
  29. $sql->query("SELECT `rus_name` FROM `down_more` WHERE `id` = '$edit' LIMIT 1");
  30. if ($name_link && $sql->num_rows() && isset($_POST['submit'])) {
  31. $sql->query("UPDATE `down_more` SET `rus_name`='$name_link' WHERE `id` = '$edit' LIMIT 1", true);
  32. header('Location: index.php?act=file_more&id=' . $id);
  33. }
  34. else {
  35. $res_file_more = $sql->fetch();
  36. echo '<div class="post">' . text::output($res_down['rus_name']) . '</div><div class="p_m">Редактирвание доп. файла</div>';
  37. echo '<div class="p_m"><form action="index.php?act=file_more&amp;id=' . $id . '&amp;edit=' . $edit . '" method="post">
  38. Имя для ссылки (мах. 200)<span style="color:red">*</span>:<br /><input type="text" name="name_link" value="' . $res_file_more['rus_name'] . '"/><br /><input type="submit" name="submit" value="Сохранить"/>';
  39. echo '</form></div><div class="menu"><a href="index.php?act=file_more&amp;id=' . $id . '">Отмена</a></div>';
  40. }
  41. }
  42. else
  43. if ($del) {
  44. $sql->query("SELECT `name` FROM `down_more` WHERE `id` = '$del' LIMIT 1");
  45. if ($sql->num_rows() && isset($_GET['yes'])) {
  46. $res_file_more = $sql->fetch();
  47. if (is_file($res_down['dir'] . '/' . $res_file_more['name']))
  48. unlink($res_down['dir'] . '/' . $res_file_more['name']);
  49. $sql->query("DELETE FROM `down_more` WHERE `id` = '$del' LIMIT 1", true);
  50. if (file_exists(H.'engine/files/tmp/download[file='.$id.';page=1].swc'))
  51. unlink(H.'engine/files/tmp/download[file='.$id.';page=1].swc');
  52. header('Location: index.php?act=file_more&id=' . $id);
  53. }
  54. else {
  55. echo '<div class="err">Вы действительно хотите удалить файл?<br /> <a href="index.php?act=file_more&amp;id=' . $id . '&amp;del=' . $del . '&amp;yes">Удалить</a> | <a href="index.php?act=file_more&amp;id=' . $id . '">Отмена</a></div>';
  56. }
  57. }
  58. else
  59. if (isset($_POST['submit'])) {
  60. if ($_FILES['fail']['size'] > 0) {
  61. $do_file = true;
  62. $fname = strtolower($_FILES['fail']['name']);
  63. $fsize = $_FILES['fail']['size'];
  64. }
  65. if ($do_file) {
  66. $error = false;
  67. $new_file = isset($_POST['new_file']) ? trim($_POST['new_file']) : null;
  68. $name_link = isset($_POST['name_link']) ? check(mb_substr($_POST['name_link'], 0, 200)) : null;
  69. $ext = explode(".", $fname);
  70. if (!empty($new_file)) {
  71. $fname = strtolower($new_file . '.' . $ext[1]);
  72. $ext = explode(".", $fname);
  73. }
  74. if (empty($name_link))
  75. $error = 'Не заполнено поле.';
  76. if ($fsize > $upload_max_filesize)
  77. $error = 'Вес файла превышает ' . size_file($upload_max_filesize);
  78. if (count($ext) != 2)
  79. $error = 'Неправильное имя файла! К отправке разрешены только файлы имеющие имя и одно расширение (<b>name.ext</b>)';
  80. if (!in_array($ext[1], $al_ext))
  81. $error = 'Запрещенный тип файла! К отправке разрешены только файлы, имеющие следующее расширение: ' . implode(', ', $al_ext);
  82. if (strlen($fname) > 30)
  83. $error = 'Длина названия файла и названия для сохранеия не должна превышать 30 символов';
  84. if (preg_match("#[^a-z0-9.()+_-]#", $fname))
  85. $error = 'В названии файла присутствуют недопустимые символы. Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- ). Запрещены пробелы.';
  86. if ($error) {
  87. $error = '<a href="index.php?act=file_more&amp;id=' . $id . '">Повторить</a>';
  88. echo '<div class="err">'.$error.'</div>';
  89. }
  90. else {
  91. $fname = file_exists($res_down['dir'].'/'.$fname) ? 'file' . $id . '_' . $time . $fname : 'file' . $id . '_' . $fname;
  92. if ((move_uploaded_file($_FILES["fail"]["tmp_name"], "$res_down[dir]/$fname")) == true) {
  93. @chmod("$fname", 0777);
  94. @chmod("$load_cat/$fname", 0777);
  95. echo '<div class="msg">Файл прикреплен<br /><a href="index.php?act=file_more&amp;id=' . $id . '">Продолжить</a><br /><a href="index.php?act=view&amp;id=' . $id . '">К файлу</a></div>';
  96. $fname = my_esc($fname);
  97. $sql->query("INSERT INTO `down_more` SET `refid`='$id', `time`='$time',`name`='$fname', `rus_name` = '$name_link',`size`='" . intval($fsize) . "'");
  98. if (file_exists(H.'engine/files/tmp/download[file='.$id.';page=1].swc'))
  99. unlink(H.'engine/files/tmp/download[file='.$id.';page=1].swc');
  100. }
  101. else
  102. echo '<div class="err">Ошибка прикрепления файла.<br /><br /><a href="index.php?act=file_more&amp;id=' . $id . '">Повторить</a><br /><a href="index.php?act=view&amp;id=' . $id . '">К файлу</a></div>';
  103. }
  104. }
  105. else
  106. echo '<div class="err">Ошибка прикрепления файла.<br /><a href="index.php?act=file_more&amp;id=' . $id . '">Повторить</a><br /><a href="index.php?act=view&amp;id=' . $id . '">К файлу</a></div>';
  107. }
  108. else {
  109. echo '<div class="post"><b>' . text::output($res_down['rus_name']) . '</b></div><div class="p_m"><b>Дополнительные файлы</b></div>';
  110. echo '<div class="post"><form action="index.php?act=file_more&amp;id=' . $id . '" method="post" enctype="multipart/form-data">Файл<span class="red">*</span>::<br /><input type="file" name="fail"/><br />
  111. Сохранить как (max. 30, без расширения):<br /><input type="text" name="new_file"/><br />
  112. Имя для ссылки (мах. 200)<span style="color:red">*</span>:<br /><input type="text" name="name_link" value="Скачать дополнительный файл файл"/><br /><input type="submit" name="submit" value="Выгрузить"/>';
  113. echo '</form></div><div class="menu"><small>Max. вес: ' . text::size_data($upload_max_filesize). ', расширения: ' . implode(', ', $al_ext) . '</small></div>';
  114. $sql->query("SELECT * FROM `down_more` WHERE `refid` = '$id'");
  115. $total_file = $sql->num_rows();
  116. $i = 1;
  117. if ($total_file) {
  118. while ($res_file_more = $sql->fetch()) {
  119. echo ($i % 2) ? '<div class="p_m">' : '<div class="post">';
  120. $format = explode('.', $res_file_more['name']);
  121. $format_file = strtolower($format[count($format) - 1]);
  122. echo '<table width="100%"><tr><td width="16" valign="top"><img src="' . $filesroot . '/images/' . (file_exists($filesroot . '/images/' . $format_file . '.png') ? $format_file . '.png' : 'file.gif') . '" alt="file" />
  123. </td><td> ' . $res_file_more['rus_name'] . ' <br /><a href="index.php?act=file_more&amp;id=' . $id . '&amp;edit=' . $res_file_more['id'] . '">Изменить</a> <span class="red"><a href="index.php?act=file_more&amp;id=' . $id . '&amp;del=' .
  124. $res_file_more['id'] . '"> [ X ] </a></span><div class="status">' . $res_file_more['name'] . ' (' . text::size_data($res_file_more['size']) . '), ' . Core::time($res_file_more['time']) . '</div></td></tr></table></div>';
  125. ++$i;
  126. }
  127. echo '<div class="menu">Всего: ' . $total_file . '</div>';
  128. }
  129. echo '<div class="menu"><a href="index.php?act=view&amp;id=' . $id . '">Назад</a></div>';
  130. }