View file modules/download/upload.php

File size: 5.7Kb
<?
define('SHCMS_ENGINE',true);
include_once('../../engine/system/core.php');
	//Авторизация 
	if(!$id_user) {
        header('Location: index.php');	
	}
//Если вместо id num попытаются вставить текст то выводит ошибку
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    $templates->template(Lang::__('Ошибка при создании темы')); //Название страницы
    header('Refresh: 1; url=index.php');
    engine::error('Произошла ошибка при выборе раздела'); //При ошибке
    exit;
}
    //Из $_GET в обычную 
    $id = (int) $_GET['id'];
    //Выводит папки где $id = true
    $dir_file = $db->get_array($db->query("SELECT * FROM `files_dir` WHERE `id` = '".$id."'")); 
			//Название страницы
    		$templates->template(Lang::__('Загрузка в папку  '.$dir_file['name']));

        //Если количество файлов будет равно больше 1 то выполяется данная функция
		if(isset($_POST['kol_files'])){ 
		    $kol_files = intval($_POST['kol_files']);
		}elseif (isset($_SESSION['kol_files'])) {
		    $kol_files = intval($_SESSION['kol_files']);
		}else {$kol_files=1;
		    //Закидываем в сессию счетчик загружаемых файлов
            $_SESSION['kol_files'] = $kol_files;
		}	
	

	
	// установить переменные
	$dir_dest = (isset($_GET['dir']) ? $_GET['dir'] : H.'upload/download/files/');
	$dir_pics = (isset($_GET['pics']) ? $_GET['pics'] : $dir_dest);
        
		if(isset($_POST['submit'])) {
    		// как это несколько добавления, мы будем анализировать массив $ _FILES реорганизовать его в $ files
    		$files = array();
    			foreach ($_FILES['files'] as $k => $l) {
        			foreach ($l as $i => $v) {
            			if (!array_key_exists($i, $files))
               			$files[$i] = array();
            			$files[$i][$k] = $v;
        			}
    			}

    		// Теперь мы можем пройтись по $files, и кормить каждый элемент в класс
    		foreach ($files as $file) {

        		// Мы создании экземпляра класса для каждого элемента $file
        		$handle = new Upload($file);

        		// То мы проверяем, если файл был загружен правильно 
       		    // в временного расположение в сервере (часто это / TMP)
        		if ($handle->uploaded) {

            		// Теперь, мы начинаем «процесс» загрузки. То есть, чтобы скопировать загруженный файл 
            		// Из временной папки в нужное место 
            		// It could be something like $handle->Process('/home/www/my_uploads/');
            		$handle->Process($dir_dest);

            			// мы проверяем, если все прошло ОК
            			if ($handle->processed) {
                			// все было хорошо!
							//Записываем новый данные файла в базу
							$db->query("INSERT INTO `files` (`id_dir`,`name`,`files`,`time`,`id_user`,`filesize`) VALUES ('".$id."','".$db->safesql($file['name'])."','".$handle->file_dst_name."','".time()."','".$id_user."','".filesize($handle->file_dst_pathname)."')");
				                //Доп. описание
								$name = '<b>Файл:</b> <a href="'.$dir_pics.'/' . $handle->file_dst_name . '">' . $handle->file_dst_name . '</a>';
                				$name .=  '(' . round(filesize($handle->file_dst_pathname)/256)/4 . 'KB)';
                					//Успешно
									echo  engine::success(Lang::__('<b>Файл успешно загружен</b>'),$name);
									header('Refresh: 3; url=dir.php?id='.$id.'');
            			} else {
                			// Если файл загружен не в нужной месте
				    		echo  engine::error(Lang::__('<b>Файл не загружен на разыскиваемого месте</b>'),'<b>Ошибка:</b> '.$handle->error);
            			}

        		} else {
            		// если мы здесь, загрузка файлов на сервер не удалось по ряду причин
            		// т.е. сервер не получить файл
            		echo  engine::error(Lang::__('<b>Файл не загружен на сервер</b>'),'<b>Ошибка:</b> '.$handle->error);
        		}
    		}
		}
		//Форма загрузки файлов
		echo '<div class="mainpost">';	
			$form = new form('?id='.$id.'','','','enctype="multipart/form-data"');
			$form->text('<div class="mainpost">');
		    //Ск. файлов хотите добавить
			$form->input('Количество файлов:','kol_files','text',$kol_files);
			$form->submit('Выводить','kol_file',true);
			$form->text('</div>');
			//Выводит форма добавление файлов 
			for ($num=0;$num<$kol_files; $num++) {
				$form->text('<div class="subpost"><span class="time">'.($num + 1).'</span>');
				$form->input('Выберите файл:','files[]','file');
				$form->text('</div>');		
			}
		//Отправляем данные	
		$form->submit('Загрузить','submit');
		$form->display();
        echo '</div>';		
		
		//Переадресации
		echo engine::home(array('Назад','dir.php?id='.$id.''));
		echo engine::home(array('На главную','index.php'));
?>