A partir de PHP 4.2.0, PHP devuelve un código de error apropiado, junto con el array del archivo. El código de error se puede encontrar en el segmento error del array del archivo que PHP crea durante la subida del archivo. En otras palabras, el error podría encontrarse en $_FILES['userfile']['error'].
UPLOAD_ERR_OK
Valor: 0; No hay error, archivo subido con éxito.
UPLOAD_ERR_INI_SIZE
Valor: 1; El archivo subido excede la directiva upload_max_filesize en php.ini.
UPLOAD_ERR_FORM_SIZE
Valor: 2; El archivo subido excede la directiva MAX_FILE_SIZE que fue especificada en el formulario HTML.
UPLOAD_ERR_PARTIAL
Valor: 3; El archivo subido fue sólo parcialmente cargado.
UPLOAD_ERR_NO_FILE
Valor: 4; Ningún archivo fue subido.
UPLOAD_ERR_NO_TMP_DIR
Valor: 6; Falta la carpeta temporal. Introducido en PHP 4.3.10 y PHP 5.0.3.
UPLOAD_ERR_CANT_WRITE
Valor: 7; No se pudo escribir el archivo en el disco. Introducido en PHP 5.1.0.
UPLOAD_ERR_EXTENSION
Valor: 8; Una extensión de PHP detuvo la carga de archivos. PHP no proporciona una forma de determinar cual extensión causó la parada de la subida de archivos; el examen de la lista de extensiones cargadas con phpinfo() puede ayudar. Introducido en PHP 5.2.0.
Nota:
Estas se convirtieron en constantes de PHP en PHP 4.3.0.