Mensajes de error $_FILES como gestionarlos y resolverlos PHP

Al subir un fichero mediante un formulario:
<form action="gestor.php" method="post" enctype="multipart/form-data">
   <input type="file" name="fichero" id="id_fichero">
   <input type="submit" value="Subir fichero" name="submit">
</form>

PHP gestiona los ficheros subidos por el método POST, pero puede ser que no siempre salga bien esta subida, en tal caso para saber el estado de la subida PHP tiene declarada unas constantes para cada caso que tienen como valor un número, cada posible estado tendrá asignado su respectivo número.

¿Como podemos saber el número que indica el estado de mi subida de fichero?

En el array $_FILE tendremos toda la información sobre la gestión de archivos que se han subido o intentado subir.

Entre otras cosas en este array se especifica el tamaño de los ficheros subidos, nombre de los ficheros, o rutas de los mismos entre otras características.

Concretamente si queremos acceder al estado de la subida accederemos al elemento del array [‘error’], como por ejemplo:

$_FILES['fichero']['error']

Mensajes de error para subida documentos en el $_FILES

switch ($codigoFich)
{
   case UPLOAD_ERR_OK: //0
        $mensajeInformativo = 'El fichero se ha subido correctamente (no se ha producido errores).';
       break;
   case UPLOAD_ERR_INI_SIZE: //1
        $mensajeInformativo = 'El archivo que se ha intentado subir sobrepasa el límite de tamaño permitido. Revisad la directiva de php.ini UPLOAD_MAX_FILSIZE. ';
       break;
    case UPLOAD_ERR_FORM_SIZE: //2
	$mensajeInformativo = 'El fichero subido excede la directiva MAX_FILE_SIZE especificada en el formulario HTML. Revisad la directiva de php.ini MAX_FILE_SIZE.';
       break;
    case UPLOAD_ERR_PARTIAL: //3
	$mensajeInformativo = 'El fichero fue sólo parcialmente subido.';
       break;
    case UPLOAD_ERR_NO_FILE: //4
	$mensajeInformativo = 'No se ha subido ningún documento';
       break;
    case UPLOAD_ERR_NO_TMP_DIR: //6
	$mensajeInformativo = 'No se ha encontrado ninguna carpeta temporal.';
	break;
    case UPLOAD_ERR_CANT_WRITE: //7
	$mensajeInformativo = 'Error al escribir el archivo en el disco.';
	break;
    case UPLOAD_ERR_EXTENSION: //8
	$mensajeInformativo = 'Carga de archivos detenida por extensión.';
        break;
    default:
        $mensajeInformativo = 'Error sin identificar.';
	break;
}
 
echo $mensajeInformativo;
Error UPLOAD_ERR_INI_SIZE
Es posible que se solucione revisando la directiva de php.ini UPLOAD_MAX_FILESIZE. Esta directiva indica el tamaño máximo de un fichero que se permite subir (de forma individual).

Error UPLOAD_ERR_FORM_SIZE
Es probable que se solucione revisando la directiva de php.ini MAX_FILE_SIZE. Indica el tamaño total permitido de la suma de tamaño de todos los archivos correspondientes a una misma subida (de forma grupal).

Iván Martínez

Ingeniero Informático apasionado por el mundo del desarrollo WEB. Me gusta caminar por este mundo lleno de tecnologías y día a día aprender cosas nuevas como el doctor Frankenstein ¡dadme cosas para experimentar!

Deja un comentario

Tu dirección de correo electrónico no será publicada.