Title1

Title2

Title3

9. 檔案的處理

一、基本上傳檔案

  1. 使用者將一個內含有上傳功能的表單送出後,表單會將使用者所選擇的檔案上傳至主機的暫存目錄下,例如tmp目錄中,暫存目錄的位置可以透過修改php.ini中的 upload_tmp_dir設定來自定,上傳後的檔案系統會給予一個暫時的檔名。我們只需將暫存檔案移至我們指定的地方,這樣就完成檔案上傳的功能了!
  2. 讓表單可以上傳檔案:需要在form的標籤加一個屬性:「enctype='multipart/form-data'」,
  3. input 的 type='file'
  4. $_FILES 超級全域變數:當我們的表單中有使用input的file表單元件時,檔案上傳後,對PHP而言,會自動產生出 $_FILES 這個全域變數
    1. $_FILES['my_file']['name'] :檔案名稱

    2. $_FILES['my_file']['type'][$i] :檔案的MIME類型,例如:image/gif

    3. ($_FILES['my_file']['size'][$i] :檔案大小

    4. $_FILES['my_file']['tmp_name'] :暫存檔名稱

    5. $_FILES['my_file']['error'] :錯誤訊息

    6. 如果要上傳多檔,name 請用 陣列 加屬性 multiple
      <input type="file" name="my_file[]" multiple>

  5. move_uploaded_file():上傳後,PHP必須從暫存目錄中找出該檔案,然後搬移到我們指定要存放上傳檔案的目錄中,並給予一個新檔名,當然也可以沿用原先的檔名 $_FILES['my_file']['name']
    move_uploaded_file(暫存檔名, 目的位置及檔名)

  6. move_uploaded_file() 會檢查暫存檔是否由 PHP 的 HTTP POST上傳。如果OK, 那麼該函式就會將上傳的暫存檔移至指定的位置,並改成指定的名稱。如果發現不是 HTTP POST上傳,那麼不會有任何動作並回傳 FALSE