Cómo crear un formulario web para subir un fichero al servidor (en HTML y PHP) con comprobaciones de tamaño y tipo de fichero. El ejemplo limitará el tamaño del fichero a subir y, como ejemplo, únicamente admitirá ficheros de imagen y de tipo jpg, bmp o png.

Ejemplo de formulario web HTML para subir un fichero

Mostramos el código HTML y CSS de ejemplo de un formulario que muestra un botón para elegir un fichero local y subirlo al servidor. Dicho formulario web incluye un atributo para establecer el límite del tamaño del fichero a subir en 2 Megabytes (2.097.152 bytes). También incluye código JavaScript para mostrar el nombre del fichero a subir.

Copiaremos y pegaremos el siguiente código en el fichero index.html de nuestro sitio web:

En el ejemplo anterior, el procesamiento de la subida del fichero se realizará desde el fichero subir.php, indicado en action=subir.php. Mostramos el contenido de ejemplo del fichero subir.php a continuación.

El HTML y CSS anterior mostrará un formulario como el siguiente en el navegador web:

Contenido de ejemplo del fichero subir.php para realizar la subida de un fichero al servidor en PHP

Mostramos el código fuente completo del fichero subir.php, que realizará todas las comprobaciones:

  • Si el tamaño del fichero es inferior a 2MB.
  • Si el fichero es una imagen.
  • Si la extensión del fichero es jpg, jpeg, bmp o png.
  • Si no existe un fichero con el mismo nombre ya subido.

Si cumple todos los requisitos realizará la subida al servidor, a la carpeta «imagenes» (que debe existir).

Copiaremos y pegaremos el siguiente código PHP en el fichero subir.php que debe estar en la misma carpeta que el fichero index.html anterior:

Ejemplo de subida de fichero en HTML, CSS, JavaScript y PHP en funcionamiento

Si abrimos el navegador web y accedemos a la URL de nuestro servidor web, nos mostrará el formulario de subida de fichero. Pulsaremos en «Elegir fichero»:

Mostrará una ventana de selección de fichero local a subir. Elegiremos un fichero de imagen y de tamaño inferior a 2MB:

Una vez elegido el fichero pulsaremos en «Subir»:

Si cumple los requisitos se subirá el fichero al servidor web y mostrará el mensaje indicando que el fichero se ha subido correctamente:

El fichero se habrá subido a la carpeta «imagenes» del servidor web Apache o Nginx:

Descarga de los ficheros HTML y PHP del ejemplo de formulario subida de fichero con límite de tamaño

A continuación, mostramos el enlace para la descarga gratuita del código fuente HTML, JavaScript y PHP del ejemplo de formulario de subida de fichero con límite de tamaño y tipo de fichero: