由於使用Javascript (通常情況下)客戶端的技術,和PHP (通常情況下)服務器端技術,自從HTTP是一種“無國籍”協議,兩種語言不能直接共享變量。
然而,人們可能通過變量兩者之間的關系。途徑之一是完成這一創造Javascript代碼用PHP ,並刷新瀏覽器本身,通過特定變量返回的PHP腳本。下面的例子恰恰說明如何做到這一點-它使P HP代碼捕獲屏幕的高度和寬度,這通常是唯一可能在客戶端。htmlspecialchars()函數
上傳文件
允許用戶上傳文件是必要的,許多網站,所以,我們如何做到這一點,正是?但話又說回來,有一些方便的書面文件上。審議了麻煩呢?那么,這里的一些幫助是稍微更容易消化。
首先,您需要HTML網頁的形式將謊言。這種形式必須確定文件最大規模的上傳,並必須有文件上傳領域本身
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
MAX_FILE_SIZE界定的盡可能多的文件大小,以字節為單位,當然。名稱屬性上傳領域(指定的檔案價值的type屬性)的重要組成部分,正如我們稍后將使用此在我們的腳本來知道哪些要上傳的文件(這是用來支持多種上傳) 。
下一步,我們要上傳文件。但首先,重要的是要理解$_FILE [ ]數組。
在$_FILE [ ]數組,有一個項目,每一個領域中上傳的形式發送用戶此腳本。因此,在我們的案例,有一個指數命名為' userfield ' ,為一個外地與這個名字在我們的形式。每個值的數組也是一個關聯數組,以下項和值(改寫明確從文件) :
<?php
$target_file = '/path/to/upload/‘'.basename($_FILES[’userfile‘;][‘name’]);
?>
關鍵價值
'名稱'文件名使用客戶的計算機。
'型'的MIME類型的文件(如圖像/ gif格式) 。該瀏覽器並不總是提供這方面的,和價值不應假定是正確的。
'大小'的大小上傳的文件(以字節為單位) 。
' tmp_name '的文件給上傳的文件,其中應立即轉移,並更名后的成功上傳。地點是無關緊要的,因為你使用的方法把文件( move_uploaded_file ,我使用后)都知道的位置。
'錯誤'的錯誤代碼(或成功的代碼,如果0 )的問題發生在上傳。 (錯誤代碼)
表1 :簡要介紹了鑰匙和價值觀
所以,現在我們可以開始進行業務。首先,我們得到的文件名,我們將想給上傳的文件,而且目錄,我們希望把它。
<?php
$target_file = ’/path/to/upload/‘.basename($_FILES[’userfile‘][’name‘]);
?>
使用basename是絕對必要的。沒有這一點,您正在運行一個巨大的安全風險。如果用戶要上傳文件的名稱,開始使用相對路徑上升,如http://www.cnblogs.com/../, ,他們最終將得到根除,可以隨時隨地瀏覽到的文件的落實更多的目錄后,原來的起點的道路。
警告:這是非常重要的是,可以確保服務器的權限寫信給這個目錄。如果您的服務器正在運行的任何發行版的Linux或Mac OS X ,您可能會需要屬性的目錄。
下一步,您只需將上傳的文件為target_file 。我認為這樣做的,如果為了試驗的成功。
<?php
if (move_uploaded_file($_FILES[‘userfile’][‘tmp_name’], $target_file)) {
// Succeeded
echo ’Yay!‘;
} else {
// Failed
echo ’No!‘;
}
?>
