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

Размер файла: 9.03Kb
<?
if (!defined('SECURED'))
{
	die("Unknown Error!");
}
include'includes/func_formatsize.php';

title('Загрузка файла');
div('Загрузка файла','b');

if($ver=='wml')
	{
	echo'Закачка файлов возможна только в <a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$category['id'].'&amp;xhtml&amp;'.SID.'">xHTML</a> версии.<br/>';
	}
else
	{
	if(!empty($_GET['id']))
		{
		$id=intval($_GET['id']);
		list($refcat, $cat_name)=mysql_fetch_array(mysql_query("select parent,name from categorys where id='".$id."';"));
		if($refcat==0)
		{
			echo'Неизвестная ошибка';
			footer();
			exit;
		}
		list($refcat_name, $acc_ext)=mysql_fetch_array(mysql_query("select name,acc_ext from categorys where id='".$refcat."';"));
		div("&#187; <b>$refcat_name</b>/<b>$cat_name</b>",'g');
		if(!isset($_POST['upl_type']))
			{
			div('<b>Правила загрузки:</b><br/>
			1. Все поля обязательны к заполнению.<br/>
			2. Файлы к которым нет обращения больше '.($config['max_keep']/3600/24).' дней удаляются автоматически.<br/>
			3. Строго запрещается заливать в обменник файлы, содержащие детскую порнографию, зоофилию, разжигающие межнациональные конфликты, противоречащие законам РФ!<br/>
			4. Администрация вправе удалить любой файл без уведомления лица, залившего его в обменник.<br/>
			5. Расширения, допустимые к загрузке в данной категорий: <b>'.strtoupper(str_replace('|',', ',$acc_ext)).'</b>','a');
			if(isset($_GET['operamini'])) echo'&#187; <a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;'.$rand.'&amp;'.SID.'">Обычная закачка</a>';
			else echo'&#187; <a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;operamini&amp;'.$rand.'&amp;'.SID.'">Закачка с Opera Mini</a>';
			echo $separator;
			echo'<form enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;'.SID.'" method="post">
			&#8226; <b>Форма загрузки:</b><br/>
			&#187; Описание:<br/>
			<textarea name="info" cols="15" rows="3"></textarea><br/>
			<input type="checkbox" name="tr_info" value="1"/>Транслит<br/>';
			echo'&#187; Ваше имя (ник): ';
			if(!$sid)
				{
				echo'<br/><input type="text" name="nickname"/><br/>';
				}
			else
				{
				echo'<b>'.$login.'</b><br/>';
				}
			echo'&#187; Файл (не более '.formatsize($config['max_filesize']).'):<br/>';
			if(isset($_GET['operamini']))
				{
				echo'<input type="text" name="file"/><br/>
				<a href="op:fileselect">Обзор...</a><br/>
				<input name="upl_type" type="hidden" value="2"/>';
				}
			else
				{
				echo'<input type="file" name="file"/><br/>
				<input name="upl_type" type="hidden" value="1"/>';
				}
			echo'<img src="pic.php?'.session_id().'" alt="kod"/><br/>
			&#187; Код с картинки:<br/>
			<input name="kod" type="text" size="5"/><br/>
			<input type="submit" name="submit" value="Загрузить"/>
			</form>';
			echo $separator;
			}
		else
			{
			$uploaded=false;
			
			if($_SESSION['ref']!=$_POST['kod'])
				{
				$error='Неверно введен код с картинки!<br/>';
				}
			if(!$sid) 
				{
				$nickname = val($_POST['nickname']);
				list($check_if_exists)=mysql_fetch_array(mysql_query("select id from users where login='".$nickname."';"));
				if(mysql_affected_rows()!=0) $error.='Вы не можете использовать этот ник для добавления файлов, т.к. он зарегистрирован!<br/>';
				else $nickname="0|$nickname";
				}
			else $nickname = $user['id']."|$login";
			
			if($error)
				{
				echo $error;
				echo '<a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;'.$rand.'&amp;'.SID.'">Назад</a>'.$separator;
				footer();
				exit;
				}
				
			switch($_POST['upl_type'])
			{
			default:
			require "includes/fileupload-class.php";
			$destination='files/'.$refcat.'/'.$id;
			$my_uploader = new uploader('ru');
			$my_uploader->max_filesize($config['max_filesize']);
			$my_uploader->accepted_extensions(explode('|',$acc_ext));
			if ($my_uploader->upload("file", '', '')) 
				{
				$my_uploader->save_file($destination, 2);
				}
			if ($my_uploader->error) 
				{
				echo $my_uploader->error.'<br/>';
				echo '<a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;'.$rand.'&amp;'.SID.'">Назад</a>'.$separator;
				}
			else 
				{
				$uploaded=true;
				$file_path=$destination.'/'.$my_uploader->file['name'];
		        }
			break;
		 	case '2':
		    include "includes/inc_om_upload.php";
			list($uploaded_state,$msg)=om_upload($_POST['file'],$destination,$config['max_filesize'],explode('|',$acc_ext));
			if($uploaded_state==true) 
				{
				$uploaded=true;
				$file_path=$destination.'/'.$msg;
				}
			else
				{
				echo $msg.'<br/>';
				echo '<a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;'.$rand.'&amp;'.SID.'">Назад</a>'.$separator;
				}
			break;
			}
			
			if($uploaded==true)
				{
				include"includes/func_translit.php";
				include"includes/inc_make_jad.php";
				include"includes/inc_make_preview.php";
				$ext=strtolower(pathinfo($file_path,PATHINFO_EXTENSION));
				//скриншот для видео или картинки
				if(in_array($ext,$extensions['video']) || in_array($ext,$extensions['pics']))
					{
					$screenshot = make_preview($file_path,$destination);
					}
				else $screenshot='';
				//jad файл для java файла
				if($ext=='jar')
					{
					$jad = make_jad($file_path,$destination,'http://'.$config['fs_path'].'/'.$file_path);
					}
				else $jad='';
				//запись копирайтов в id3 музыкальных файлов
				if(in_array($ext,$extensions['audio']))
					{
					$siteurl=str_replace('http://', null, $config['url']);
					include'includes/inc_mp3_class.php';
					$id3 = new MP3_Id();
					$result = $id3->read($file_path);
					$id3->setTag('name', $siteurl); 
					$id3->setTag('artists', $siteurl); 
					$id3->setTag('album', $siteurl); 
					$id3->setTag('comment', $config['url']); 
					$result = $id3->write();
					}
					
				$info = val($_POST['info']);
				if($_POST['tr_info']==1) $info = tr($info);
				if(empty($info)) $info='[без описания]';
				
				mysql_query("update `users` set `upl_files` = `upl_files` + 1, `upl_files_size` = `upl_files_size` + ".filesize($file_path)." where `id`='".$user['id']."';");
				mysql_query("INSERT INTO `files` ( `id` , `cat` , `refcat` , `filename` , `desc` , `screen` , `jad` , `downloads` , `uploaded` , `author` , `ip` , `soft` ) VALUES (0, '$id', '$refcat', '$file_path', '$info', '$screenshot', '$jad', '0', '".time()."', '$nickname', '$ip', '$agent');");
				echo "Файл успешно загружен под названием <b>".basename($file_path)."</b>!<br/>";
				echo '<a href="'.$_SERVER['PHP_SELF'].'?mode=file&amp;id='.mysql_insert_id().'&amp;'.SID.'">Перейти к файлу</a><br/>';
				echo '<a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$id.'&amp;'.$rand.'&amp;'.SID.'">Загрузить еще!</a>'.$separator;
				unset($_SESSION['ref']);
				}
			}
		echo '&#187; <a href="'.$_SERVER['PHP_SELF'].'?mode=cat&amp;id='.$id.'&amp;'.SID.'">'.$cat_name.'</a><br/>';
		echo '&#187; <a href="'.$_SERVER['PHP_SELF'].'?mode=cat&amp;id='.$refcat.'&amp;'.SID.'">'.$refcat_name.'</a><br/>';
		}
	else
		{
		if(!empty($_GET['cid']))
			{
			$cid=intval($_GET['cid']);
			list($this_cat_name)=mysql_fetch_array(mysql_query("select name from categorys where id='".$cid."';"));
			echo'<img src="images/up.gif" alt="[UP]"/> <b><a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;'.SID.'">'.$this_cat_name.'</a></b>';
			echo $separator;
			echo'Выберите подкатегорию:<br/>';
			$q=mysql_query("select * from categorys where parent='".$cid."' order by position;");
			while($category=mysql_fetch_array($q))
				{
				$text='<img src="images/dir.gif" alt="[DIR]"/> ';
				if($category['adult']==1) $text.='[18+]';
				$text.='<b><a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;id='.$category['id'].'&amp;'.SID.'">'.$category['name'].'</a></b><br/>';
				echo $text;
				}
			}
		else
			{
			echo'Выберите категорию:<br/>';
			$q=mysql_query("select * from categorys where parent='0' order by position;");
			while($category=mysql_fetch_array($q))
				{
				$text='<img src="images/dir.gif" alt="[DIR]"/> ';
				$text.='<b><a href="'.$_SERVER['PHP_SELF'].'?mode=upload&amp;cid='.$category['id'].'&amp;'.SID.'">'.$category['name'].'</a></b><br/>';
				echo $text;
				}
			}
		}
	}
echo $separator;
echo $goback;
?>