Листинг 2. Загрузка файлов на сервер — upload.Php
Загрузка файлов на сервер
Одной из распространенных задач при работе с файлами является их загрузка на удаленный сервер. Для загрузки файлов на сервер понадобится HTML-форма index.html и скрипт upload.php для ее обработки. Простая форма для отправки файла на сервер может выглядеть так, как показано в листинге 1.
Листинг 1. HTML-форма для загрузки файлов на сервер — (файл) index.html)
<html>
<head> <title Загрузка файлов на сервер </title> </head>
<body> <h2><b> Форма для загрузки файлов </b></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="3arpyзить"><br>
</form> </body>
</html>
Атрибут entype формы определяет вид кодировки, которую браузер применяет к параметрам формы. Для того чтобы отправка файлов на сервер действовала, атрибуту entype необходимо присвоить значение
Quot;multipart/form-data".
По умолчанию этот атрибут имеет значение "application/x-www-form-urlencoded".
Если все сделано правильно, форма для отправки файлов на сервер должна выглядеть так, как это показано на рис. 1.
После того как получен HTTP-запрос, содержимое загруженного файла записывается во временный файл, который создается в каталоге сервера, заданном по умолчанию для временных файлов, если другой каталог не задан в файле php.ini (директивой upload_tmp_dir).
Характеристики загруженного файла доступны через двумерный массив $_files.
При этом переменная со значениями этого массива может иметь следующий вид:
□ $_FILES["filename"] ["name"] — содержит исходное имя файла на клиентской машине;
□ $_files["filename"] ["size"]— содержит размер загруженного файла в байтах;
□ $_files [ "filename" ] [ "type" ] — содержит тип файла;
□ $_FILES["filename"] ["tmp_name"] — содержит ИМЯ временного файла,в который сохраняется загруженный файл.
В листинге 2 приведен скрипт upload.php, который загружает файл на сервер и копирует его из временного каталога в каталог temp.
Листинг 2. Загрузка файлов на сервер — upload.php
<html> <head>
<title> Результат загрузки файла </title> </head> <body> <?php
if(copy($_FILES["filename"]["tmp_name"], "temp/".$_FILES["filename"]["name"])) {
echo("Файл успешно загружен"); }
else {
echo("Ошибка загрузки файла"); }
</body> </html>
После выполнения этого скрипта выбранный для загрузки файл будет помещен в подкаталог temp каталога, в котором расположен скрипт, а браузер выдаст фразу "Файл успешно загружен".
(Замечание)
Проверить успешность загрузки файла на сервер можно при помощи специальной функции is_uploaded_file(), которая принимает в качестве единственного параметра имя файла ($_FILES["filename"] ["name"]) и возвращает true в случае успешной загрузки и false в случае неудачи.
Скрипт из листинга 3 позволяет вывести характеристики загруженного файла. Для этого необходимо модифицировать скрипт в листинге 2.