檔案域的作用是實現檔案或圖片的上傳。文件域有一個特有的屬性,用於指定上傳的檔案類型,如果需要顯示上傳檔案的類型,則可以透過設定該屬性來完成。
在實作開發過程中,檔案或圖片上傳在一些網站應用程式中是不可或缺的一部分。例如個人部落格上傳個性頭像,有些論壇分享好的學習資料等等,這就牽涉到使用表單處理文件上傳的知識,在php中 我們可以用$_FILES這個全域陣列來處理。下面就來看看基本的文件上傳處理部分。首先要說明的,能夠上傳文件必定是安全隱患,所以在開發這部分功能時,一定要注意網站的安全性。而這裡所探討的只是基本的文件上傳部分,提供的是PHP文件上傳基本的知識,讓朋友們了解最簡單的原理和程式碼知識,關於安全性這方面考慮的較少。
$_FILES:經由 HTTP POST 檔案上傳而提交至腳本的變數。
$_FILES陣列內容如下:
$_FILES['myFile']['name'] 用戶端檔案的原名稱。
$_FILES['myFile']['type'] 檔案的 MIME 類型,需要瀏覽器提供該資訊的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳檔案的大小,單位為位元組。
$_FILES['myFile']['tmp_name'] 檔案上傳後在服務端儲存的暫存檔案名,一般是系統預設。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函數設定是不起作用的。
$_FILES['myFile']['error'] 和該檔案上傳相關的錯誤代碼。 ['error'] 是在 PHP 4.2.0 版本中增加的。
$_FILES["file"]["error"]中的["error"]值情況:
UPLOAD_ERR_OK 值:0; 沒有錯誤發生,文件上傳成功
UPLOAD_ERR_INI_SIZE 值:1; 上傳的檔案超過了php.ini 中upload_max_filesize選項限制的值
#110SI_ERR_FORM_SIZE 值的值 UPLOAD_ERR_PARTIAL 值:3; 檔案只有部分被上傳 #為檔案大小#1000 個人大小
下面來一個簡單的實例,選擇需要上傳的文件,點擊「上傳」按鈕,就會在上方顯示要上傳文件的絕對路徑。
其特定的開發步驟是如下的形式:
(1)新建立一個index.php 動態頁,建立一個form 表單,新增一個檔案網域和一個提交按鈕,其主要的代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>form</title> </head> <body> <form action="index.php" method="post" name="form1"> <input type="file" name="file" size="15"> <input type="submit" name="upload" value="上传文件"> </form> </body> </html>
說明:本實例實現的是獲取文件域的值,並沒有實現圖片的上傳,因此不需要設置