Загрузка файлов на сайт
Задача, собственно, простая - перегрузить файл пользователя с егоь компьютера на сервер. В простейшем варианте файл будет загружаться с тем же названием, как и у пользователя. Для загружаемых файлов нужна директория, в которую они будут складываться. Код скрипта:
<?php
$dir="TEMP";
if(empty($_FILES['file']['tmp_name'])){
$upl="<form method=post enctype=multipart/form-data>
<input type=file name=file ><BR>
<input type=submit value=Загрузить>
</form>"; echo $upl;}
elseif($_FILES["file"]["size"] > 1024*200)
{echo "Размер файла превышает допустимый"; exit;}
elseif(!is_uploaded_file($_FILES['file']['tmp_name'])||!copy($_FILES['file']['tmp_name'],$dir.chr(47).$_FILES['file']['name']))
{$inf="Не удалось загрузить файл";}
else {$inf="Файл ".$_FILES['file']['name']." загружён на сервер"; }
echo $inf;
?>
Теперь подробнее. Первым делом запишем название директории для файлов (оно может быть любым) в переменную $dir:
$dir="TEMP";
Если скрипт не получил имени загружаемого файла:
if(empty($_FILES['file']['tmp_name'])){
то он запишет код формы загрузки файла в переменную $upl и покажет форму:
$upl="<form method=post enctype=multipart/form-data>
<input type=file name=file ><BR>
<input type=submit value=Загрузить>
</form>"; echo $upl;}
Если имя файла получено, скрипт определит размер файла и, если размер превышает допустимый (здесь максимальный размер 1024*200=200 килобайт, если его не указывать, то по умолчанию это 2 мегабайта), скрипт сообщит об этом пользователю и закончит свою работу:
elseif($_FILES["file"]["size"] > 1024*200)
{echo "Размер файла превышает допустимый"; exit;}
Если не удалось выгрузить файл пользователя во временную директорию (загрузка идет всегда в два этапа) или не удалось из временной переписать в конечную директорию, скрипт формирует сообщение о неудаче:
elseif(!is_uploaded_file($_FILES['file']['tmp_name'])||!copy($_FILES['file']['tmp_name'],$dir.chr(47).$_FILES['file']['name']))
{$inf="Не удалось загрузить файл";}
Ну и, наконец, если все обошлось благополучно, скрипт сделает соответствующую запись:
else {$inf="Файл ".$_FILES['file']['name']." загружён на сервер"; }
Теперь осталось сообщить пользователю о результатах загрузки::
echo $inf;
Сейчас можно скачать и попробовать скрипт в работе. Файлы в процессе загрузки на сервер можно переименовывать и фильтровать. Как это сделать - здесь.