文件上載支持

PHP有能力接受任何RFC-1867適應瀏覽器(包括Netscape Navigator 3.0或以後的版本, Microsoft Internet Explorer 3.0(使用瞭補丁程序)或以後的版本)的文件上載。這個特性讓用戶可以上載文本和二進制文件。使用PHP 的身份鑒定和文件處理函數,您可以完全控制誰可以上載文件和被上載的文件可以做些什麼。
可以采用類似下面的建立表單的方法來建立一個文件上載的屏幕。
Example 2-3.文件上載表單

Send this file:


其中“_URL_”指向一個PHP的HTML文件。MAX_FILE_SIZE隱藏領域必須先於文件輸入領域,它的值是可以接受的最大的文件大小。該值的單位是字節。在該目標文件中,下列變數用來定義是否成功的上載瞭文件:
$userfile:在將要存放上載文件的服務器上的臨時文件名字。
$userfile_name:在發送者系統中的初始文件名。
$userfile_size:按字節計算的上載文件的大小。
$userfile_type:多用途網際郵件擴充協議類型的文件,如果瀏覽器提供這種信息。一個例子是“image/gif”。
註釋:在這裡“userfile”部分是可以變化的,它可以取任何的名字隻要在上載表單中類型仍然為“TYPE=file”即可。在上面的例子中,我們選擇它的名字為“userfile”。

文件將被默認的存放在服務器默認的臨時目錄下。在PHP運行的環境下,可以改變環境變量TMPDIR來更改這個設置。設置時,請在PHP腳本沒有運行的情況下使用一個PutEnv()函數。
接受上載文件的PHP腳本語言將貫徹何種邏輯結構是必須的來決定對上載的文件可以做些什麼。例如,用戶可以使用“$file_size”變量來發送任何或者太小或者太大的文件來嘗試一下結果。可以使用“$file_type”變量來發送任何不符合的確定類型標準的文件。無論何中邏輯結構,您都需要在臨時目錄中刪除這個文件,或者把它移走。
如果沒有被改名字或移動,那麼在請求的最後該文件將被從臨時文件夾中刪除。
請註意,在從客戶端獲得MIME的連接類型之後,“CERN httpd”軟件似乎將剝離任何內容而以最初的白板形式出現。在這種場合,“CERN httpd”軟件將不支持上載文件的特性。

發佈留言