Учебник по основам PHP. PHPBeginner



         

Загрузка файлов на сервер методом HTTP POST - часть 3


PUT /path/filename html HTTP/1.1

Строка указывает, что сервер должен сохранить последующую часть запроса как файл под именем filename.html в каталоге web-сервера /path/. Едва ли такое решение является удачным — позволять любому клиенту сохранять произвольные файлы на сервере. Поэтому в конфигурации web-сервера следует указать, что запросы этого типа должен обрабатывать определенный сценарий. В сервере Apache для этого необходимо добавить директиву Script в его файл конфигурации. Обычно такая директива вносится в блок <Directory>, иногда — в блок <Virtualhost>. Например, в таком виде:

Script PUT /put.php

Эта директива указывает серверу, что все получаемые запросы типа PUT (соответствующие контексту, то есть адресованные определенному каталогу или виртуальному хосту) должны передаваться сценарию put.php (расположенному в корневом каталоге web-сервера). Внутри файла put.php можно указать следующую строку:

<?php copy
($PHPjmjILFNAME.IDOCUMENT_ROOT.
$REQUEST_URI); ?>

Тогда все загружаемые файлы будут копироваться в указанную в запросе директорию. Необходимо, конечно, предварительно проводить ряд проверок на допустимость подобной операции. Полученный файл сохраняется во временном файле, имя которого заносится в переменную SPHP_PUT_FILENAME. Адрес, по которому запрашивался файл, сохраняется в переменной $REQUEST_URI (для Apache). Так же как и для файлов POST, полученный файл удаляется по завершении, если он не был скопирован или перемещен.




Содержание  Назад  Вперед