Просмотр файла modules/download/upload.php

Размер файла: 5.72Kb
  1. <?
  2. define('SHCMS_ENGINE',true);
  3. include_once('../../engine/system/core.php');
  4. //Авторизация
  5. if(!$id_user) {
  6. header('Location: index.php');
  7. }
  8. //Если вместо id num попытаются вставить текст то выводит ошибку
  9. if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
  10. $templates->template(Lang::__('Ошибка при создании темы')); //Название страницы
  11. header('Refresh: 1; url=index.php');
  12. engine::error('Произошла ошибка при выборе раздела'); //При ошибке
  13. exit;
  14. }
  15. //Из $_GET в обычную
  16. $id = (int) $_GET['id'];
  17. //Выводит папки где $id = true
  18. $dir_file = $db->get_array($db->query("SELECT * FROM `files_dir` WHERE `id` = '".$id."'"));
  19. //Название страницы
  20. $templates->template(Lang::__('Загрузка в папку '.$dir_file['name']));
  21.  
  22. //Если количество файлов будет равно больше 1 то выполяется данная функция
  23. if(isset($_POST['kol_files'])){
  24. $kol_files = intval($_POST['kol_files']);
  25. }elseif (isset($_SESSION['kol_files'])) {
  26. $kol_files = intval($_SESSION['kol_files']);
  27. }else {$kol_files=1;
  28. //Закидываем в сессию счетчик загружаемых файлов
  29. $_SESSION['kol_files'] = $kol_files;
  30. }
  31.  
  32. // установить переменные
  33. $dir_dest = (isset($_GET['dir']) ? $_GET['dir'] : H.'upload/download/files/');
  34. $dir_pics = (isset($_GET['pics']) ? $_GET['pics'] : $dir_dest);
  35. if(isset($_POST['submit'])) {
  36. // как это несколько добавления, мы будем анализировать массив $ _FILES реорганизовать его в $ files
  37. $files = array();
  38. foreach ($_FILES['files'] as $k => $l) {
  39. foreach ($l as $i => $v) {
  40. if (!array_key_exists($i, $files))
  41. $files[$i] = array();
  42. $files[$i][$k] = $v;
  43. }
  44. }
  45.  
  46. // Теперь мы можем пройтись по $files, и кормить каждый элемент в класс
  47. foreach ($files as $file) {
  48.  
  49. // Мы создании экземпляра класса для каждого элемента $file
  50. $handle = new Upload($file);
  51.  
  52. // То мы проверяем, если файл был загружен правильно
  53. // в временного расположение в сервере (часто это / TMP)
  54. if ($handle->uploaded) {
  55.  
  56. // Теперь, мы начинаем «процесс» загрузки. То есть, чтобы скопировать загруженный файл
  57. // Из временной папки в нужное место
  58. // It could be something like $handle->Process('/home/www/my_uploads/');
  59. $handle->Process($dir_dest);
  60.  
  61. // мы проверяем, если все прошло ОК
  62. if ($handle->processed) {
  63. // все было хорошо!
  64. //Записываем новый данные файла в базу
  65. $db->query("INSERT INTO `files` (`id_dir`,`idir`,`name`,`files`,`time`,`id_user`,`filesize`) VALUES ('".$id."','".$dir_file['dir']."','".$db->safesql($file['name'])."','".$handle->file_dst_name."','".time()."','".$id_user."','".filesize($handle->file_dst_pathname)."')");
  66. //Доп. описание
  67. $name = '<b>Файл:</b> <a href="'.$dir_pics.'/' . $handle->file_dst_name . '">' . $handle->file_dst_name . '</a>';
  68. $name .= '(' . round(filesize($handle->file_dst_pathname)/256)/4 . 'KB)';
  69. //Успешно
  70. echo engine::success(Lang::__('<b>Файл успешно загружен</b>'),$name);
  71. header('Refresh: 3; url=dir.php?id='.$id.'');
  72. } else {
  73. // Если файл загружен не в нужной месте
  74. echo engine::error(Lang::__('<b>Файл не загружен на разыскиваемого месте</b>'),'<b>Ошибка:</b> '.$handle->error);
  75. }
  76.  
  77. } else {
  78. // если мы здесь, загрузка файлов на сервер не удалось по ряду причин
  79. // т.е. сервер не получить файл
  80. echo engine::error(Lang::__('<b>Файл не загружен на сервер</b>'),'<b>Ошибка:</b> '.$handle->error);
  81. }
  82. }
  83. }
  84. //Форма загрузки файлов
  85. echo '<div class="mainpost">';
  86. $form = new form('?id='.$id.'','','','enctype="multipart/form-data"');
  87. $form->text('<div class="mainpost">');
  88. //Ск. файлов хотите добавить
  89. $form->input('Количество файлов:','kol_files','text',$kol_files);
  90. $form->submit('Выводить','kol_file',true);
  91. $form->text('</div>');
  92. //Выводит форма добавление файлов
  93. for ($num=0;$num<$kol_files; $num++) {
  94. $form->text('<div class="subpost"><span class="time">'.($num + 1).'</span>');
  95. $form->input('Выберите файл:','files[]','file');
  96. $form->text('</div>');
  97. }
  98. //Отправляем данные
  99. $form->submit('Загрузить','submit');
  100. $form->display();
  101. echo '</div>';
  102. //Переадресации
  103. echo engine::home(array('Назад','dir.php?id='.$id.''));
  104. echo engine::home(array('На главную','index.php'));
  105. ?>