PHP
מספקת
תמיכה
בשיטת
HTTP
PUT
שבה
משתמשים
netscape
composer
ו-W3C
Amaya
.
בקשת
PUT
פשוטות
יותר
מהעלאת
קבצים
,
והן
נראות
בערך
ככה
:
בדרך
כלל
זה
יציין
שהלקוח
רוצה
לשמור
את
התוכן
שבא
אחרי
,
כמו
:
/
path
/
filename.html
בעץ
הרשת
שלך
.
מובן
מאליו
שזה
לא
רעיון
טוב
עבור
Apache
או
PHP
לאשר
לכולם
באופן
אוטומטי
לכתוב
על
קבצים
קיימים
בעץ
הרשת
שלך
.
כדי
לטפל
בבקשות
כאלה
,
צריך
להגיד
לשרת
שברצונך
להפנות
בקשות
כאלה
לסקריפט
PHP
.
על
Apache
הדבר
נעשה
על
ידי
ספריית
Script
.
אפשר
לשים
את
זה
כמעט
בכל
מקום
בקובץ
הקונפיגורציה
של
Apache
.
מקום
נפוץ
הוא
בתוך
הבלוק
Directory
או
אולי
בתוך
הבלוק
Virtualhost
.
שורה
כזו
תעשה
את
הטריק
:
זה
אומר
ל-Apache
לשלוח
את
כל
בקשות
PUT
ל-URI
שתואם
את
המיקום
בו
שמתם
את
השורה
שמציינת
את
מיקום
הסקריפט
put.php
.
זה
בהנחה
,
כמובן
,
ש-PHP
מאפשרת
סיומות
.php
וש-PHP
פעילה
.
בתוך
הקובץ
put.php
צריך
לכתוב
משהו
כזה
:
זה
יעתיק
את
הקובץ
למיקום
המבוקש
על
ידי
הלקוח
.
בטח
יתעורר
בך
הרצון
לבצע
כמה
בדיקות
ו
/
או
לאמת
את
המשתמש
לפני
ביצוע
העתקת
הקובץ
.
הטריק
היחיד
כאן
הוא
שכש-PHP
רואה
בבקשה
בשיטת
PUT
,
היא
מאחסנת
את
הקובץ
שהועלה
בקובץ
זמני
ממש
כמו
אלה
שטופלו
מלבד
שיטת
POST
.
כשהבקשה
מסתיימת
,
הקובץ
הזמני
הזה
נמחק
.
לכן
,
סקריפט
ה-PHP
שמטפל
ב-PUT
צריך
להעתיק
את
הקובץ
למיקום
כלשהו
.
שם
הקובץ
של
הקובץ
הזמני
נמצא
בתוך
המשתנה
$PHP_PUT_FILENAME
,
וניתן
לראות
את
שם
הקובץ
המוצע
בתוך
$REQUEST_URI
(
יכול
להשתנות
על
שרתים
שאינם
Apache
)
.
שם
הקובץ
המוצע
הוא
שם
שמגדיר
הלקוח
.
הלקוח
שולח
בקשה
ולא
פקודה
.
לכן
אפשר
,
לדוגמה
,
להעתיק
את
כל
הקבצים
שהועלו
לספריית
העלאות
מיוחדת
.