- file_uploads
- 是否允許檔案上傳
- upload_max_filesize
- 上傳時單一檔案大小上限
- upload_tmp_dir
- 上傳的檔案一定會先傳到這個暫存目錄,所以要注意移動檔案到不同磁碟分割區時效率。
- post_max_size
- 用 HTTP 的 POST 方法傳送表單資料量的上限(HTML <form method="POST">),檔案上傳的量也包含在其中
- max_file_uploads
- 同時可上傳的檔案數量上限
- PHP > 5.2.12
- max_input_time
- 允許程式分析外來資料($_POST $_GET)的時間上限
- max_execution_time
- 允許程式執行的時間上限
- 會與上一項設定一樣,影嚮大檔案及低頻寬時,參見 Connection handling
PHP會自動建立 $_FILES 對應每一個檔案欄位,以
<input name="userfile" type="file"/> 為例,其中將會有下列屬性:- $_FILES['userfile']['name']
- $_FILES['userfile']['type']
- $_FILES['userfile']['size']
- $_FILES['userfile']['tmp_name']
- $_FILES['userfile']['error']
- UPLOAD_ERR_OK
- UPLOAD_ERR_INI_SIZE
- 當要傳的檔案大於 upload_max_filesize 的值時。
- UPLOAD_ERR_FORM_SIZE
- 當要傳的檔案大於表單隱藏欄位 MAX_FILE_SIZE 的值時。
- UPLOAD_ERR_PARTIAL
- UPLOAD_ERR_NO_FILE
- UPLOAD_ERR_NO_TMP_DIR
- UPLOAD_ERR_CANT_WRITE
- UPLOAD_ERR_EXTENSION
PHP 處理檔案上傳順序,應該是有先檢查 HTTP Header 看是否超過 MAX_FILE_SIZE。
Content-Length: 104858220 Content-Disposition: form-data; name="MAX_FILE_SIZE" PHP Warning: POST Content-Length of 3148440 bytes exceeds the limit of 2097152 bytes in Unknown on line 0
關於 <form> 和 <input> 的 accept 屬性,在其中填入逗點分隔的 MIME Media Types,可以幫助使用者篩選檔案類型,但沒有強制效果。目前已知 Google Chrome 和 Opera 有支援,IE 和 Firefox 沒有。
No comments:
Post a Comment