File uploads con php

El último tipo de dato que se puede transferir al server usando un formulario es un archivo, este es un tipo de transferencia especial pues implica generar un archivo en el file-system del web-server a partir de un archivo que el usuario selecciona desde su disco local.

HTML soporta el upload de archivos usando el tag con type=”file”, este tipo de input genera un boton “browse” en el browser que permite al usuario seleccionar un archivo desde su file-system local (usando una caja de navegación por los discos standard del sistema operativo).

El formulario para subir un archivo es de la forma:


Send this file:

Como puede verse hay un campo oculto que indica cual es el limite máximo de tamaño que se puede subir, este valor es chequeado en el “cliente”, además PHP dispone de una variable que se inicializa en el archivo de configuración de php (en gral /var/lib/php.ini) allí se limita el tamaño máximo de los uploads al llegar al “server”

El script upload.php que recibe los datos del formulario recibe las siguientes variables:

$userfile – Path del archivo almacenado en el server.
$userfile_name – Nombre del archivo segun el usuario
$userfile_size – Tamaño del archivo subido
$userfile_type – Mime type del archivo, por ejemplo image/gif

El script que recibe el archivo es responsable de hacer lo que corresponda con el mismo ya que en general el archivo se almacena en un directorio temporal y es eliminado una vez que termina el script. El script debe almacenar el archivo en una base de datos, moverlo a un directorio permanente, tomar datos de el o realizar el procesamiento que corresponda.

Fuente: Documento Generación de web sites dinámicos usando PHP