Podpora metody PUT
PHP poskytuje podporu pro HTTP PUT metodu používanou klienty jako
Netscape Composer nebo W3C Amaya. Požadavky s metodou PUT jsou mnohem
jednodušší než upload souborů a vypadají přibližně takto:
Toto by normálně znamenalo, že by chtěl klient uložit obsah, který
následuje za názvem /path/filename.html, do svého webového stromu.
To samozřejmě není dobrý nápad, aby Apache nebo PHP automaticky
nechal kohokoli přepsat jakékoli soubory ve stromě. Takže,
pro zpracování takového požadavku je třeba nejdřív řici vašemu
WWW serveru, že chcete požadavek zpracovávat konkrétním PHP skriptem.
U serveru Apache se to provede direktivou
Script. Může být umístěna kdekoli v konfiguračním
souboru Apache. Častými místy jsou bloky <Directory> a
<Virtualhost>. Použije se k tomu řádek podobný tomuto:
Toto řekne serveru Apache, aby všechny PUT požadavky na nějaký URI
vyhovující kontextu posílal skriptu put.php. To pochopitelně předpokládá,
že máte povoleno PHP pro příponu .php a PHP je aktivní.
V souboru put.php byste potom mohli napsat něco jako:
Toto by mělo zkopírovat soubor na místo požadované vzdáleným klientem.
Pravděpodobně byste chtěli provést nějaká ověření a/nebo autentizace
uživatele před provedením tohoto zkopírování. Jediným použitelným trikem
je, že PHP uloží přenesený soubor do dočasného adresáře podobně, jako
při použití
metody POST.
Až skript skončí, dočasný soubor bude odstraněn. Takže váš PHP skipt
pro zpracování PUT požadavků musí soubor zkopírovat jinam. Název souboru
v dočasném umístění je uložen v proměnné $PHP_PUT_FILENAME a požadovaný
název cílového souboru v proměnné $REQUEST_URI (může se lišit u serverů
jiných než Apache). Toto cílové jméno je to jediné, co klient
specifikoval. Nemusíte ho poslechnout. Mohli byste, například, kopírovat
všechny uploadované soubory do speciálního uploadového adresáře.