php post方法可以使用戶上傳文字和二進位文件,並且用PHP的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理,使用語法如“method="POST "」。
POST 方法上傳
#本特性可以使用戶上傳文字和二進位檔案。用 PHP 的認證和檔案操作函數,可以完全控制允許哪些人上傳以及檔案上傳後怎麼處理。
推薦:《PHP教學》
PHP 能夠接受任何來自符合RFC-1867 標準的瀏覽器(包括Netscape Navigator 3 及更高版本,打了補丁的Microsoft Internet Explorer 3 或更高版本)上傳的檔案。
Note: 相關的設定
請參閱 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 設定選項。
請注意 PHP 也支援 PUT 方法的檔案上傳,Netscape Composer 和 W3C 的 Amaya 用戶端使用此方法。
Example #1 檔案上傳表單
可以如下建立一個特殊的表單來支援檔案上傳:
<!-- The data encoding type, enctype, MUST be specified as below --> <form enctype="multipart/form-data" action="__URL__" method="POST"> <!-- MAX_FILE_SIZE must precede the file input field --> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <!-- Name of input element determines name in $_FILES array --> Send this file: <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form>
以上範例中的__URL__ 應該被換掉,指向一個真實的PHP 檔。
MAX_FILE_SIZE 隱藏欄位(單位為位元組)必須放在檔案輸入欄位之前,其值為接收檔案的最大尺寸。這是對瀏覽器的建議,PHP 也會檢查此項目。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大型檔案。實際上,PHP 設定中的上傳檔案最大值是不會失效的。但最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大檔案之後才發現檔案過大上傳失敗的麻煩。
Note:
要確保檔案上傳表單的屬性是 enctype="multipart/form-data",否則檔案上傳不了。
全域變數 $_FILES 自 PHP 4.1.0 起存在(在更早的版本中以 $HTTP_POST_FILES 取代)。此數組包含有所有上傳的檔案資訊。
以上範例中 $_FILES 陣列的內容如下所示。我們假設檔案上傳欄位的名稱如上例所示,為 userfile。名稱可隨意命名。
$_FILES['userfile']['name']
客戶端機器檔案的原名稱。
$_FILES['userfile']['type']
檔案的 MIME 類型,如果瀏覽器提供此資訊的話。一個例子是“image/gif”。不過此 MIME 類型在 PHP 端並不檢查,因此不要想當然認為有這個值。
$_FILES['userfile']['size']
已上傳檔案的大小,單位為位元組。
$_FILES['userfile']['tmp_name']
檔案被上傳後在服務端儲存的暫存檔案名稱。
$_FILES['userfile']['error']
和該檔案上傳相關的錯誤代碼。此項目是在 PHP 4.2.0 版本中增加的。
檔案上傳後,預設會被儲存到服務端的預設暫存目錄中,除非 php.ini 中的 upload_tmp_dir 設定為其它的路徑。服務端的預設臨時目錄可以透過更改 PHP 運行環境的環境變數 TMPDIR 來重新設置,但是在 PHP 腳本內部透過執行 putenv() 函數來設定是不起作用的。這個環境變數也可以用來確認其它的操作也是在上傳的檔案上進行的。
以上是php post方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!