Limita el tamaño de ficheros a subir mediante Apache

El otro día una amiga me escribía bastante agobiada preguntando cómo se podía saber mediante Javascript el tamaño de un fichero que se quería subir, porque si superaba cierto tamaño, no se debía permitir que se subiera (antes de que se intente mandar). Mi respuesta fue un “no se puede hacer desde el cliente” (espero no haberme equivocado).

El problema que tenía es que le obligaban a que fuera en el navegador, supongo que o el cliente (cabezón) o el analista/jefe (más cabezón aún). La solución, que creo que no aceptaban era controlarlo mediante Apache: se añade en el fichero .htaccess la siguiente directiva y ya no hay problemas:

LimitRequestBody tamaño

Siendo tamaño el número de bytes que ponemos como límite para subir ficheros.

A parte de este ejemplo, mi pobre amiga siempre anda enmarronada con peticiones increibles. Por ello, dos consejos:

  • No dejéis que el cliente imponga lo que le venga en gana, hay cosas que no se pueden/deben hacer y por mucho que se empeñe, seguirán sin poderse/deberse hacer. Entre ellas, siempre se comprueban las cosas en el servidor, nunca únicamente en el cliente, sobre todo por temas de seguridad.
  • El elemento input file es tal cual es, no se le puede cambiar el texto del botón, ni aplicarle filtro, ni que te vaya a la carpeta que quieran, ni cambiar el diseño de la ventana, ni modificar mediante Javascript el fichero que se quiere seleccionar. Aunque parezca mentira siempre acaban pidiéndonos alguna de estas cosas.

Pido disculpas si esta entrada no es la típica, pero es que las tonterías del cliente acaban sacándote de quicio.