PHP: Загрузка файлов на сервер

Простенький скрипт для загрузки файлов на сервер. Может пригодится, когда у друзей возникают проблемы с заливкой файлов на обменниками, а еще оказывается они не умеют разбивать файл на части, для отправки его по почте.

Скрипт состоит из одного файлика, который нужно закинуть в папку, имеющую права на запись. Обычно хостеры ограничивают максимальный размер файла, передаваемого на сервер, восемью мегабайтами. Это исправляется настройкой .htaccess`a, в который надо добавить два параметра:

php_value post_max_size 32M
php_value upload_max_filesize 32M

Сам скрипт:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head profile="http://gmpg.org/xfn/11">
		<style type="text/css">
			#wrap {
				width:400px;
				margin:200px auto;
				padding:40px 30px 30px 30px;
				border:1px solid #ccc;
				text-align:center;
				color:#666;
			}
		</style>
	</head>
	<body>
		<div id="wrap">
			<?php function show_form()
			{ ?>
			<form id="form" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

				Выберите файл: <input name="myfile" type="file"/>
				<br />
				Максимальный размер файла:
				<b>
						<?php	echo ( (int) ini_get('post_max_size') < (int) ini_get('upload_max_filesize') ) ? (int) ini_get('post_max_size') : (int) ini_get('upload_max_filesize'); ?>
				</b> мегабайт!<br />
				<input type="submit" value="Загрузить"/>
			</form>
		</div>
	</body>
</html>
	<?php }	?>



<?php

if ($_SERVER['REQUEST_METHOD']=='POST')
{
	upload();
}
else
{
	show_form();
}

function upload()
{

	if( empty($_FILES) )
		show_err(0);
	foreach ( $_FILES as $file )
	{
		// Если ошибок не было
		if($file["error"] == 0)
		{
			if ( file_exists($file['name']) )
				show_err(1);
			// Получаем содержимое файла
			//move_uploaded_file ( $myfile, dirname(__file__). DIRECTORY_SEPARATOR );
			copy($file['tmp_name'],dirname(__FILE__). DIRECTORY_SEPARATOR . $file['name']);
			echo '<h4>Файл <i>',$file['name'],'</i>  успешно загружен.</h4>' ;
			show_form();
		}
	}
}

function show_err($id)
{
	$err[0] = 'ОШИБКА! Файл не был загружен.';
	$err[1] = 'ОШИБКА! Этот файл уже загружен.';

	echo '<h2>'.$err[$id].'</h2>';
	show_form();
	die();
}
?>

Комментарии (RSS)

  • # Rustam: спасибо :)

Оставить комментарий: