Для загрузки пользовательских файлов на сервер используется
специальный элемент управления,позволяющий указать путь к загружаемому
файлу(при помощи кнопки Обзор).Элемент управления имеет следующий синтаксис:
<input type="file">
Помимо атрибута type,элемент управления допускает указание атрибутов name и size.Простая форма для отправки файла на сервер демонстрируется ниже:
HTML-форма для загрузки файлов на сервер - index.html
<h2><b> Форма для загрузки файлов </b></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input name="filename" type="file">
<input value="Загрузить" type="submit">
</form>
Атрибут enctype формы определяет вид кодировки,которую браузер применяет к параметрам формы.Для того чтобы отправка файлов на сервер действовала,атрибуту enctype необходимо присвоить значение multipart/form-data.По умолчанию этот атрибут имеет значение application/x-www-form-urlencoded.
После того как получен HTTP-запрос,содержимое загруженного файла
записывается во временный файл,который создается в каталоге
сервера,заданном по умолчанию для временных файлов,если другой каталог
не задан в файле php.ini(директива upload_tmp_dir).
Характеристики загруженного файла доступны через двумерный
суперглобальный массив $_FILES.При этом переменная со значением этого
массива может иметь следующий вид:
- $_FILES['filename']['name](содержит исходное имя файла на клиентской машине);
- $_FILES['filename']['size'](содержит размер загруженного файла в байтах);
- $_FILES['filename']['size'](содержит MIME-типа файла);
- $_FILES['filename']['tmp_name'](содержит имя временного файла,в который сохраняется загруженный файл).
Проверить успешность загрузки файла на сервере можно при помощи специальной функции is_upload_file(),которая принимает в качестве единственного параметра имя файла ($_FILES['filename']['name']) и возвращает TRUE в случае успешной загрузки и FALSE в случае неудачи.
Ниже приведен скрипт upload.php,который загружает файл на сервер и копирует его из временного каталога в каталог temp/.
<?php
if(copy($_FILES['filename']['tmp_name'],
"temp/".$_FILES['filename']['name']))
{
echo "Файл успешно загружен";
}
else
{
echo "Ошибка загрузки файла";
}
?>
После выполнения этого скрипта выбранный для загрузки файл будет
помещен в подкаталог temp каталога,в котором расположен скрипт,а браузер
выдаст фразу "Файл успешно загружен".
Следующий скрипт позволяет вывести характеристики загруженного
файла.Для этого необходимо модифицировать скрипт так,как представлено
ниже:
<strong>Характеристики файла</strong>
<?php
if(copy($_FILES['filename']['tmp_name'],
"temp/".$_FILES['filename']['name']))
{
echo "Файл успешно загружен
<";
echo "Характеристики файла:
";
echo "Имя файла: ";
echo $_FILES['filename']['name'];
echo "
Размер файла: ";
echo $_FILES['filename']['size'];
echo "
Каталог для загрузки: ";
echo $_FILES['filename']['tmp_name'];
echo "
Тип файла: ";
echo $_FILES['filename']['type'];
}
else
{
echo "Ошибка загрузки файла";
}
?>
В некоторых случаях требуется ограничить размер файла,который может
быть загружен на сервер.К примеру,чтобы зазрешить загрузку на сервер
файлов размером не более 4Мбайт,нужно скрипт так,как это представлено
ниже:
Ограничение размера загружаемого файла
<?php
if($_FILES['filename']['size'] > 4*1024*1024)
{
exit "Размер файла превышает три мегабайта";
}
if(copy(_FILES['filename']['tmp_name'],
"temp/".$_FILES['filename']['name']))
{
echo "Файл успешно загружен
";
}
else
{
echo "Ошибка загрузки файла";
}
?>
Максимальный размер загружаемого файла можно также задать при помощи директивы upload_max_filesize,значение которой по умолчанию равно 2 Мбайт:
if($_FILES['filename']['size'] > upload_max_filesize)
Значение директивы upload_max_filesize можно изменить в конфигурационном файле php.ini.
Источник: http://live-code.ru |