PUT Yönetmi Desteği

PHP Netscape Composer ve W3C Amaya gibi programların kullandığı HTTP PUT yöntemini de destekler. PUT işlemi, bir dosya yükleme işleminden daha basittir ve aşağıdaki gibidir:

PUT /path/filename.html HTTP/1.1

Bu şu demektir: dosyayı yükleyen, dosyayı, web düzeniniz içindeki /path/filename.html içine kaydetmek istemektedir. Tüm kulanıcıların, web dizini içindeki herhangi bir dosyanın üzerine yazmak Apache ve PHP için kesinlikle iyi bir fikir değildir. Bu tür bir işlemi kontrol altına almak için, web sunucunuza böyle bir işlem için belirli bir PHP dosyasını kullanmasını söylemelisiniz. Apache'de bu işlem Script direktifi ile yapılmaktadır. Bu direktif, Apache'nin konfigursasyon dosyasında herhangi bir yere konulabilir. Genellikle <Directory> bloğunun veya <Virtualhost> bloğunun içine konur. Bunun gibi bir satır işinizi görecektir:

Script PUT /put.php

Bu satır, Apache'ye, tüm PUT istemlerini, eklediğimiz satırda bulunan put.php dosyasına göndermesini söyler. Bu örnek, .php uzantısının çalışır olduğu ve PHP nin aktif olduğu varsayılarak verilmiştir.

put.php dosyanızda, şöyle birşey yapabilirsiniz:

<?php copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?>

Bu işlem, dosyayı, işelemi yapan kişinin istediği klasöre kopyalar. Bu kopyalama işlemini gerçekleştirmeden önce, bazı kontroler ve/veya giriş kontrolleri yapmak isteyebilirsiniz. İstek sonlandığında, bu geçici dosya silinir. Dolayısı ile işlemi gerçekleştiren dosyanız, bu dosyayı başka bir yere kopyalamalıdır. Bu geçici klasördeki dosya adı $PHP_PUT_FILENAME değişkenindedir ve isteği gönderenin belirlediği dosya adını $REQUEST_URI (Apache dışındaki web sunucularda değişebilir) değişkeninde görebilirsiniz. Bu belirtilen dosya adı, dosyayı gönderenin belirlediği dosya adıdır. Bu isteği gerçekleştirmek zorunda değilsinizdir. Örneğin tüm dosyaları, belirlediğiniz bir klasöre kopyalabilirsiniz.