3aгpyзкa файлов на ваш Web-сайт
Если вам нужен интерфейс для загрузки файлов на ваш Web-сайт с удаленного компьютера, то вы можете
создать его из двух частей: формы и сценария РНР. В этой главе вы узнаете, как выполнить следующие
действия:
Создать HTML-форму для загрузки файлов;
Создать PHP-сценарий для управления загрузкой файлов.
Что тaкoe зaгpyзкa файла на Web-сервер?
Процесс загрузки файла на Web-сервер через HTML-форму является загадкой для многих людей.
Уделим немного времени для объяснения этого процесса.
Чтобы начать процесс загрузки, вам необходимо следующее:
HTML-форма;
Файл для загрузки;
Место под загружаемый файл;
Сценарий, который поместит файл в назначенное ему место.
Сам по себе процесс загрузки представляет собой следующую последовательность действий:
Пользователь загружает HTML-форму и видит текстовое поле ввода и кнопку Обзор на своем
Web-браузере;
Пользователь нажимает кнопку Обзор и, просматривая файлы на своем компьютере, выбирает
файл, который хочет загрузить;
Полный путь к выбранному для загрузки файлу появится в поле ввода формы;
Пользователь нажимает кнопку Загрузить на сервер;
Выбранный файл передается на Web-сервер и помещается во временную папку;
Сценарий РНР, используемый для обработки формы, проверяет, был ли файл отправлен, и выполняет команду
копирования файла, хранящегося во временной папке, чтобы переместить его в существующую папку на
Web-сервере;
Сценарий РНР подтверждает пользователю, что операция загрузки завершена.
Пользователь РНР (пользователи, которые запустили РНР, с такими именами, как "nobody",
"www" или "joe") должны иметь право записи файла во временную папку, так же как и
в результирующую папку.
В следующем знакомстве мы начнем создание простой HTML-формы.
Создание формы
Начнем создание формы с одним полем ввода. Вы можете создать форму для загрузики такого количества
файлов, которое впоследствии планируете получать, используя последовательность действий при работе
с одним файлом.
Создайте с помощью текстового редактора новый файл.
Введите следующий код HTML:
Чтобы начать форму с использованием метода post и сценария с именем do_upload.php в
качестве действия, введите строку:
Параметр ENCTYPE используется потому, что мы будем отправлять больше, чем просто текст.
Предположим, что вы будете загружать файл с изображением, поэтому назовем поле ввода имени файла в
форме img1.
Создайте поле ввода с подписью Файл для загрузки:
Параметр TYPE="file" в поле ввода формы будет отображаться, как попе ввода с кнопкой
Обзор. Кнопка Обзор запускает файловый менеджер, с помощью которого вы можете выбрать
файл для загрузки.
Добавьте кнопку Загрузить на сервер:
Завершите форму и HTML-документ:
Сохраните созданный файл с именем upload_form.html в папке для документов вашего Web-сервера.
Запустите свой Web-браузер, в поле ввода Адрес введите,
http://localhost/upload_form.html
и нажмите клавишу Enter.
Браузер загрузит страницу Загрузка файла (Рис. 6.1).
Рис. 6.1. Страница Загрузка файла
На Рис. 6.2 вы видите форму загрузки файла с полем ввода и кнопками Обзор и Загрузить на сервер.
В следующем упражнении вы создадите сценарий для обработки этой формы.
Создание сценария загрузки.
Перед началом создания сценария запомните список переменных, которые создаются автоматически после
успешной загрузки файла. Основная часть имени переменных - img1 - является именем поля ввода
созданной в предыдущем знакомстве формы.
$img1 - значение ссылается на временный файл на Web-сервере.
$img1_name - значение является действительным именем файла, который был загружен.
Например, если имя файла было me.jpg, то значение $img1_name будет me.jpg.
$img1_size - значение является длиной загруженного файла в байтах.
$img1_type — значение является типом загруженного файла, таким как image/jpg.
Целью создаваемого сценария является следующее: взять загруженный файл, скопировать его в папку
для документов Web-сервера и вернуть подтверждающее сообщение пользователю, содержащее все
переменные из указанного выше списка.
Создайте с помощью текстового редактора новый файл.
Начните блок РНР:
Начните оператор if. . .else, проверяющий значение переменной $img1_name:
Если значение $imgl_name не пустое, нужно выполнить функцию копирования. Применим символ @
перед именем функции, чтобы подавить предупреждения, и используем функцию die( ),
чтобы вызвать завершение сценария и отобразить сообщение о том, что функция сору( ) закончилась
неудачей:
Откройте главную папку вашего Web-сервера - Z:/home/localhost/www и создайте в ней новую
папку с именем myWebSite.
Продолжите оператор if. . .else, чтобы обработать случай отсутствия файла для загрузки:
Продолжите ввод оператора if. . .else и закончите РНР-блок:
Добавьте НТМL-код:
Чтобы вывести на экран строку с информацией о загруженном файле (имя, размер, тип), добавьте строку:
Завершите HTML-блок:
Сохраните созданный файл с именем do_upload.php в папке для документов вашего Web-сервера.
Созданный вами файл должен выглядеть так, как показано на Рис. 6.2.
Рис. 6.2. Файл сценария do_upload.php
Загрузкa файла с помощью формы и сценария
Теперь, когда вы создали форму и сценарий для загрузки файла, проверим, как все это работает.
Запустите свой Web-браузер, в поле ввода Адрес введите
http://localhost/upload_form.html
и нажмите клавишу Enter. Браузер загрузит страницу Загрузка файла (Рис. 6.1).
Нажмите кнопку Обзор. На экране появится диалог Выбор файла (Рис. 6.3).
Рис. 6.3. Диалог Выбор файла
Используя этот диалог, найдите на своем компьютере любой файл с изображением размером не более 2
Мбайт, выберите его и нажмите кнопку Открыть. Диалог Выбор файла закроется, а имя выбранного
файла с полным путем будет помещено в поле ввода Файл для загрузки.
Нажмите кнопку Загрузить на сервер. По окончании загрузки в рабочем окне браузера появится
сообщение об успешном ее завершении (Рис. 6.4).
Рис. 6.4. Сообщение об успешном завершении загрузки файла
Файл pic6_3.gif был выбран для примера, имя вашего файла будет отличаться от использованного
здесь имени.
Чтобы убедиться, что файл действительно был загружен, выполните следующие действия:
Выберите команду меню браузера Файл/Открыть. На экране появится диалог Открыть (Рис. 6.5).
Рис. 6.5. Диалог Открыть
В поле ввода Открыть введите полный путь к загруженному файлу, в нашем случае это
F:\WebServers\home\localhost\www\myWebSite, и нажмите клавишу Enter.
Окно браузера отобразит загруженный на ваш Web-сервер файл (Рис. 6.6).
Рис. 6.6. Файл, который был загружен с использованием созданного сценария
Для поиска файла вы также можете использовать кнопку Обзор диалога Oткрыть (Рис. 6.6).
Простой счетчик обращений
Сценарий, который вам предстоит создать в этом упражнении, подсчитывает количество обращений к
web-странице, на которой он находится.
Создайте с помощью текстового редактора новый файл
Начните блок PHP
Создайте переменную $access и присвойте ей имя файла hits.txt, в котором будет
храниться значение счетчика (имя файла можно выбрать произвольно).
Используйте функцию file( ) для чтения содержимого $access в массив $visits, а также используйте
префикс @ перед именем функции (@file($access)) для подавления сообщения о возможных ошибках
(например, отсутствие файла с заданным именем).
Присвойте переменной $current_visitors значение первого и единственного элемента массива $visits.
Увеличьте значение счетчика обращений $current_visitors на 1
Откройте файл $access = "hits.txt" для записи и установите указатель текущей позиции в начало файла.
Запишите новое значение счетчика $current_visitors в файл $access = "hits.txt".
Закройте манипулятор, ссылающийся на файл $access = "hits.txt".
Закончите РНР-блок:
Добавьте HTML-код:
Чтобы вывести на экран строку с информацией о количестве пользователей, посетивших страничку,
добавьте строку:
Завершите HTML-блок:
Сохраните созданный файл с именем nomer.php в папке для документов вашего Web-сервера.
Полный листинг, созданного вами файла, должен выглядеть так как приведенный листинг на рис. 6.7
Рис 6.7. Листинг счетчика обращений к Web-страничке.
Запустите браузер, в поле Адрес введите
http://localhost/nomer.php
и нажмите клавишу Enter. В рабочее окно браузера будет загружена страничка с сообщением
о количестве обращений к ней. Нажмите несколько раз на кнопку Обновить, имитируя новые обращения к страничке.
Счетчик на страничке будет исправно подсчитывать все новые и новые обращения к ней (рис 6.8).
Рис 6.8 Страничка подсчитывающая своих пользователей
|