## Dificultades comunes

El elemento `MAX_FILE_SIZE` no puede especificar un tamaño de fichero mayor que el establecido en la directiva upload_max_filesize del fichero php.ini. Por defecto es 2 megabytes.

Si hay un límite de memoria habilitado, podría ser necesario un valor de memory_limit más grande. Asegúrese de establecer un valor de memory_limit lo suficientemente grande.

Si el valor de max_execution_time es demasiado pequeño, la ejecución del script podría exceder este valor. Asegúrese de establecer un valor de `max_execution_time` lo suficientemente grande.

> Nota: max_execution_time solo afecta al tiempo de ejecución del propio script. Todo tiempo empleado en actividades externas a la ejecución del script, tales como las llamadas al sistema con system(), la función sleep(), las consultas a base de datos, el tiempo que tarda el proceso de subida de ficheros, etc., no se incluye para determinar el tiempo máximo que el script ha estado en ejecución.

Advertencia

max_input_time establece el tiempo máximo, en segundos, que al script se le permite recibir información; esto incluye la subida de ficheros. Para ficheros grandes o varios ficheros, o usuarios con conexiones más lentas, podría excederse el valor predeterminado de `60 segundos`.

Si el valor de post_max_size se establece demasiado pequeño, los ficheros grandes no podrán ser subidos. Asegúrese de establecer `post_max_size` lo suficientemente grande.

El ajuste de configuración max_file_uploads controla el número máximo de ficheros que se pueden subir en una petición. Si se suben más ficheros que el límite establecido, $_FILES parará de procesar ficheros una vez se alcance este límite. Por ejemplo, si max_file_uploads se establece a `10`, $_FILES nunca contendrá más de 10 elementos.

No validar sobre qué fichero se opera podría significar que los usuarios pueden acceder a información delicada de otros directorios.

Por favor, observe que el CERN httpd parece quitar todo lo que empieza con primer espacio en blanco en la cabecera de tipo de contenido MIME que recibe desde el cliente. Mientras este sea el caso, el CERN httpd no tendrá soporte para la funcionalidad de subida de ficheros.

Debido a la gran cantidad de estilos de listados de directorios, no podemos garantizar que los ficheros con nombres exóticos (como el que contiene espacios en blanco) se manejen adecuadamente.

Los desarrolladores no deben mezclar los campos `input` normales con los de subida de ficheros en la misma variable de formulario (mediante un nombre de `input` como `foo[]`).