Forum und email

Поддержка метода PUT

Поддержка метода PUT была изменена при переходе от PHP 3 к PHP 4. В PHP 4 вы должны использовать стандартный поток ввода для чтения файла, передаваемого методом HTTP PUT.

Example#1 Сохранение загруженного при помощи HTTP PUT файла в PHP 4

<?php
/* Данные PUT находятся в потоке stdin */
$putdata fopen("php://stdin""r");

/* Открываем файл для записи */
$fp fopen("myputfile.ext""w");

/* Читаем данные блоками размером в 1 KB и
   записываем их в файл */
while ($data fread($putdata1024))
  
fwrite($fp$data);

/* Закрываем потоки */
fclose($fp);
fclose($putdata);
?>

Note: Вся документация, приведенная ниже, касается исключительно PHP 3.

PHP поддерживает загрузку файлов методом HTTP PUT, который используется в клиентах Netscape Composer и W3C Amaya. Запрос PUT выглядит проще, чем в случае обыкновенной загрузки файла на сервер:

PUT /path/filename.html HTTP/1.1
     

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

Script PUT /put.php
     

Это указывает веб-серверу Apache на необходимость перенаправлять по указанному ад