處理檔案上傳錯誤

$_FILES["FILE_NAME"]['error'](其中 FILE_NAME 是檔案輸入的 name 屬性的值,存在於表單中)可能包含以下值之一:

  1. UPLOAD_ERR_OK - 沒有錯誤,檔案上傳成功。
  2. UPLOAD_ERR_INI_SIZE - 上傳的檔案超過了 php.ini 中的 upload_max_filesize 指令。
  3. UPLOAD_ERR_PARTIAL - 上傳的檔案超出了 HTML 表單中指定的 MAX_FILE_SIZE 指令。
  4. UPLOAD_ERR_NO_FILE - 沒有上傳檔案。
  5. UPLOAD_ERR_NO_TMP_DIR - 缺少一個臨時資料夾。 (來自 PHP 5.0.3)。
  6. UPLOAD_ERR_CANT_WRITE - 無法將檔案寫入磁碟。 (來自 PHP 5.1.0)。
  7. UPLOAD_ERR_EXTENSION - PHP 擴充套件程式停止了檔案上傳。 (來自 PHP 5.2.0)。

檢查錯誤的基本方法如下:

<?php
$fileError = $_FILES["FILE_NAME"]["error"]; // where FILE_NAME is the name attribute of the file input in your form
switch($fileError) {
    case UPLOAD_ERR_INI_SIZE:
        // Exceeds max size in php.ini
        break;
    case UPLOAD_ERR_PARTIAL:
        // Exceeds max size in html form
        break;
    case UPLOAD_ERR_NO_FILE:
        // No file was uploaded
        break;
    case UPLOAD_ERR_NO_TMP_DIR:
        // No /tmp dir to write to
        break;
    case UPLOAD_ERR_CANT_WRITE:
        // Error writing to disk
        break;
    default:
        // No error was faced! Phew!
        break;
}