PHP unterstützt die HTTP PUT-Methode, wie sie von Clients wie Netscape
Composer oder W3C Amaya benutzt wird. PUT-Anfragen sind weitaus
unkomplizierter als ein Dateiupload und sehen etwa so aus:
Das würde normalerweise bedeuten, dass der entfernte Client den
folgenden Inhalt als /path/filename.html im Webverzeichnisbaum
speichert. Natürlich ist es keine gute Idee, dass PHP oder
Apache jeden Benutzer beliebige Dateien überschreiben lassen.
Um eine solche Anfrage bearbeiten zu können, muss der Webserver
erst angewiesen werden, ein bestimmtes PHP-Skript für die
Abarbeitung aufzurufen. Im Apache wird dies durch die
Script - Direktive festgelegt. Sie kann fast
überall in der Apache-Konfigurationsdatei platziert werden,
gebräuchlich ist die Platzierung innerhalb einer <Directory>- oder
<Virtualhost>- Sektion. Eine Zeile wie die folgende erledigt dies:
Diese Zeile legt fest, dass Apache alle PUT-Anfragen für URIs, die
dem Kontext entsprechen, in dem diese Zeile steht, an das put.php
Skript weiterleitet. Dies setzt natürlich voraus, dass PHP aktiv
und für die .php-Dateierweiterung registriert ist.
Innerhalb der put.php-Datei könnte folgendes stehen:
Dies kopiert die Datei an den vom Client angegebenen Ort.
Möglicherweise sollen vor dem Kopieren der Datei noch
Überprüfungen und/oder Benutzerauthentifizierung stattfinden.
Wenn PHP eine PUT-Anfrage erhält, wird die Datei genau wie bei der
POST-Methode
in einem temporären Verzeichnis gespeichert. Nach dem Abarbeiten
der Anfrage wird die temporäre Datei gelöscht. Also muss das
PHP-Skript, das die PUT-Anfrage bearbeitet, die Datei irgendwohin
kopieren. Der Name der temporären Datei findet sich in der
Variablen $PHP_PUT_FILENAME; der Name der zu speichernden
Datei steht in $REQUEST_URI (kann bei Nicht-Apache Webservern
variieren). Dieser Zieldateiname wird vom Client festgelegt. Man
kann den Client auch umgehen; beispielsweise könnten alle
hochgeladenen Dateien in ein spezielles Upload-Directory kopiert
werden.