$_FILES——通過 HTTP POST 方式上傳到當前腳本的專案的陣列,
假設我們上傳檔案欄位name='userfile',$_FILES陣列里包括:
$_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 版本中增加的, /** 錯誤碼有: UPLOAD_ERR_OK 其值為 0,沒有錯誤發生,檔案上傳成功, UPLOAD_ERR_INI_SIZE 其值為 1,上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值, UPLOAD_ERR_FORM_SIZE 其值為 2,上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值, eg,在表單中添加隱藏域:value值單位是位元組 <form enctype="multipart/form-data" action="test.php" method="POST"> <!-- MAX_FILE_SIZE must precede the file input field --> <input type="hidden" name="MAX_FILE_SIZE" value="https://www.cnblogs.com/pawn-i/p/12" /> <!-- Name of input element determines name in $_FILES array --> Send this file: <input name="userfile" type="file" /> <input type="submit" value="https://www.cnblogs.com/pawn-i/p/Send File" /> </form> UPLOAD_ERR_PARTIAL 其值為 3,檔案只有部分被上傳, UPLOAD_ERR_NO_FILE 其值為 4,沒有檔案被上傳, UPLOAD_ERR_NO_TMP_DIR 其值為 6,找不到臨時檔案夾,PHP 4.3.10 和 PHP 5.0.3 引進, UPLOAD_ERR_CANT_WRITE 其值為 7,檔案寫入失敗,PHP 5.1.0 引進, **/
檔案被上傳后,默認地會被儲存到服務端的默認臨時目錄中,除非 php.ini 中的 upload_tmp_dir設定為其它的路徑,服務端的默認臨時目錄可以通過更改PHP運行環境的環境變數TMPDIR來重新設定,但是在PHP腳本內部通過運行 putenv() 函式來設定是不起作用的,該環境變數也可以用來確認其它的操作也是在上傳的檔案上進行的,
檔案上傳可能用到的其他函式:
is_uploaded_file:
is_uploaded_file — 判斷檔案是否是通過 HTTP POST 上傳的 is_uploaded_file ( string $filename ) : bool 引數:filename——要檢查的檔案名, 回傳值:成功時回傳 TRUE, 或者在失敗時回傳 FALSE, 如果 filename 所給出的檔案是通過 HTTP POST 上傳的則回傳 TRUE,這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的檔案,例如 /etc/passwd,
move_uploaded_file:
move_uploaded_file — 將上傳的檔案移動到新位置 move_uploaded_file ( string $filename , string $destination ) : bool 引數:filename 上傳的檔案的檔案名;destination 移動檔案到這個位置(絕對路徑)
本函式檢查并確保由filename指定的檔案是合法的上傳檔案(即通過 PHP 的 HTTP POST 上傳機制所上傳的),如果檔案合法,則將其移動為由destination指定的檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91781.html
標籤:PHP
