Prevalidar ficheros en el lado del cliente

A menudo nos encontramos con que, en un formulario, debemos incluir un campo que permita al usuario enviar archivos al servidor (imágenes, documentos pdf, etc). En los formularios tradicionales, una vez enviado el formulario se comprobaban los ficheros en el servidor (tipo de archivo, peso, etc). Esto supone un problema por cuanto que los archivos deben ser, necesariamente, enviados al servidor (con el consumo de recursos que esto conlleva) y, una vez allí, si no son adecuados, hay que volver a cargar el formulario, recuperando los datos ya enviados para que el usuario no deba teclearlos de nuevo. El problema se ve agravado con los campos de tipo file de HTML 5. Hasta HTML 4, estos campos sólo podían recibir un archivo cada uno, con lo que podíamos limitar el número de archivos que le permitíamos enviar al usuario, simplemente poniendo un campo de tipo file por cada archivo que esperamos. Esto era bastante engorroso. Con HTML 5 los campos de tipo file pueden llevar el atributo multiple, lo que permite, en un solo campo, enviar varios archivos. No obstante, debemos prever un mecanismo para limitar el número máximo de archivos.