Configurar PHP para subir archivos a un servidor.
A simple vista parece que la única directiva que hay que configurar para subir archivos a un servidor con PHP es upload_max_filesize
, lo cual es un error ya que para llevar esto a cabo no solo debemos modificar upload_max_filesize
sino que también otras dos directivas que van de la mano con ésta. Estas directivas son las siguientes:
memory_limit = 8M
post_max_size = 4M
upload_max_filesize = 2M
Por un lado, memory_limit
, establece el límite de memoria que puede ser utilizado por los scripts, en este caso, 8M (Megabytes).
post_max_size
establece que el límite de bytes que pueden entrar por POST es de 4M
upload_max_filesize
define o establece el tamaño máximo de cada archivo que podemos subir, 2M en nuestro caso.
Hasta acá todo parece demasiado obvio, pero en realidad no lo es tanto en el manual. Teniendo en cuenta la siguiente regla no habría mayores problemas:
upload_max_filesize
<= post_max_size
<= memory_limit
upload_max_filesize
establece el tamaño máximo cada archio que queramos subir al servidor. Esto quiere decir que podemos subir varios archivos siempre y cuando:
- Cada archivo no supere los 2M.
- El total de archivos más otros datos que estemos enviando por POST no supere el valor establecido en
post_max_size
y - estos datos tampoco superen el valor de la directiva
memory_limit
.
Otra cosa que quiero resaltar en este artículo es acerca de la utilización el campo oculto MAX_FILE_SIZE
. Ésto no es una característica de los browsers (clientes) y sólo tiene efecto en servidores que ejecutan PHP.