| |Form|Text|Password|Hidden|Radio|Checkbox|Select|Textarea|Button / Submit / Reset|Image| | |
|---|---|
| 表單處理 |
|
|
File | |
基本語法 | |
| File 不是一個獨立的元件,它是 Input 元件的一種使用型態。其基本語法如下: | |
| <input type="file" name="名稱"> | |
參數說明 | |
| name 係指該元件的名稱,例如:MyPhoto。在事件處理程序中,您可以用 document.FormName.MyPhoto 來稱呼它。 | |
| 假如您希望限制使用者上傳的檔案大小,請在 form 中加上 <input type="hidden" name="MAX_FILE_SIZE" value="10240">。此處 10240 的單位是 byte ,表示這個 form 僅接受每個大小在 10KB 以內的檔案。 | |
| 其他參數的使用請自行參閱 HTML Specification。 | |
使用範例 | |
| 使用者端: | |
| 使用 file 時,請注意 form 之中關於 method 與 enctype 設定。 | |
|
<form action="act.php" name="DemoForm" method="POST" enctype="multipart/form-data" onsubmit="return Final_Check( );"> 您的大頭照: <input type="file" name="MyPhoto"> <input type="submit"> </form> | |
| 當使用者按下 Submit 鍵時,將依 Final_Check( ) 的傳回值決定是否送出資料給 act.php。 | |
|
<script language="JavaScript"> function Final_Check( ) { // 若使用者未選取檔案時予以警告 if ( document.DemoForm.MyPhoto.value == "" ) { alert ("請選取您的大頭照!"); return false; } return true; } </script> | |
|
伺服器端: | |
| 在伺服器端,這些資料將以元件名稱組成一個陣列。 | |
|
<? // 確認使用者已上傳檔案 if ( $_FILES['MyPhoto']['tmp_name'] != "none" && $_FILES['MyPhoto']['tmp_name'] != "" && $_FILES['MyPhoto']['size'] > 0 ) { // 其「tmp_name」元素代表該檔在伺服器中的暫存路徑與檔名 echo "暫存檔名:" . $_FILES['MyPhoto']['tmp_name'] . "<br>"; // 其「name」元素代表該檔案的原始檔名 echo "原始檔名:" . $_FILES['MyPhoto']['name'] . "<br>"; // 其「size」元素代表該檔案之大小 echo "檔案大小:" . $_FILES['MyPhoto']['size'] . "<br>"; // 其「type」元素表示該檔案之 MIME type echo "檔案型態:" . $_FILES['MyPhoto']['type'] . "<br>"; } ?> | |
| 上傳的檔案暫時被安置在一個特定的目錄(預設為 /tmp)下,當本頁的程式執行完畢之後,該暫存檔將立即被移除,所以您必須將它複製到其他的目錄去。如: | |
|
<? // 上傳檔案之存放路徑 $UploadPath = "/home/chensh/www/upload/"; copy($_FILES['MyPhoto']['tmp_name'], $UploadPath.$_FILES['MyPhoto']['name']); ?> | |
|
| |
| |Form|Text|Password|Hidden|Radio|Checkbox|Select|Textarea|Button / Submit / Reset|Image| | |


基本語法