处理文件上传错误

$_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;
}