Ваш первый Сайт С использованием РНР-скриптов
ЗАКАЧКА ГРАФИЧЕСКИХ ФАЙЛОВ НА СЕРВЕР
Чтобы посетитель или вы могли загрузить файл на сервер с какой-либо web-страницы, на этой странице должна присутствовать форма с параметром заголовка enetype, равном 'multipart/form-data , например: <form enctype='multipart/form-data'action=zagryzkaObych.php method=POST>.
В форме также должно присутствовать специальное поле типа file (выглядит как поле ввода имени файла с кнопкой «Обзор», нажав на которую
Можно отобразить окно выбора файла) и кнопка submit (отправить). Мы потом (в разд. 8.4) создадим форму для загрузки графических файлов, которая будет выглядеть примерно как на рис. 8.2.
ПоДшсь под фотоярафшй ■мим Отправить |
Как только кнопка «Отправить» будет нажата, браузер начнет передавать файл, указанный в поле типа file на сервер. В заголовке формы <form> также следует указать параметр action, значением которого должно быть имя страницы с обрабатывающим загруженный файл сценарием (у нас это будет страница zagryzkaObych.php).
Загрузку файла на сервер умеют осуществлять практически все браузеры (только самые старые модели Microsoft Internet Explorer и Netscape Navigator этого не могут), а воспринять ее могут практически все web-серверы, в том числе и самый распространенный - Apache.
После того как файл полностью загружен на сервер, он помещается в его временную папку и находится там до тех пор, пока web-cepeep не закончит обрабатывать и отдавать браузеру пользователя ту страницу, имя которой было указано в параметре action в теге формы загрузки файла (<form>). После полной выдачи страницы пользователю временная папка удаляется. Отсюда следует, что на этой странице должны обязательно присутствовать команды, перемещающие этот файл в какую-либо папку.
Странице, указанной в параметре action заголовка формы, передаются несколько переменных, содержащих информацию о загруженном файле. Именно на их основе сценарий на ней сможет работать с загруженным файлом. Кроме того, эти же самые переменные помещаются в массив $_FILES.
Вот эти переменные (filen - имя текстового поля для указания загружаемого файла пате= 'filen'):
Рис. 8.2 |
$_FILES ['filen '] [ 'tmp name ']. В эту переменную записывается то имя (временное, создающееся автоматически), которое загруженный файл имеет в папке временных файлов. Именно с ним будут работать команда копирования файла сору.
Если в исходной форме присутствовало несколько полей типа file с разными именами, то для каждого из них создается своя переменная со значением, относящимся к соответствующему файлу:
Переменная, имеющая имя $_FILES ['filen'] ['name ']. Ее значением является исходное имя файла в системе отправителя;
Переменная, имеющая имя $_FILES[' filen']['size']. Ее значение - размер загруженного файла в байтах;
Переменная, имеющая имя $_FILES[' filen]['type']. Ее значение - тип загруженного файла согласно например, «image/gif».
Все эти переменные можно использовать в PHP-сценарии на странице, указанной в параметре action заголовка формы. Для копирования файла используется команда сору($ FILES[ filen']['tmpjiame'], filename), Где filename - путь к папке, куда файл должен быть помещен. Путь к файлу во временной папке можно не указывать (она используется по умолчанию), а путь к папке, куда файл должен быть помещен (filename), должен указываться относительный от того каталога, в котором находится страница с обрабатывающим загруженный файл сценарием.
Об удалении файла из временной папки после копирования его в нужный каталог можйо не думать - это произойдет автоматически.