FormTextPasswordHiddenRadioCheckboxSelectTextareaButton / Submit / ResetImage
表單處理

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']);
?>

FormTextPasswordHiddenRadioCheckboxSelectTextareaButton / Submit / ResetImage