Tengo un algoritmo que permite al usuario subir ficheros controlando que no exceda el tamaño máximo permitido (1MB):
Código PHP:
Ver original
foreach ($_FILES['uploadFiles']['name'] as $i => $name) { if($_FILES['uploadFiles']['size'][$i] > 1048576) { $state = 4; break; } }
Hasta ahí todo bien, y funciona correctamente. El problema es el matiz de que la comprobación la hace cuando el archivo ya está en el servidor (aunque se encuentre como fichero temporal). Esto da el problema de que el usuario examina el escritorio y pretende subir un fichero de 50MB, el servidor lo sube como temporal y luego hace la comprobación lo cual consume recursos innecesariamente.
Investigando he encontrado una etiqueta HTML que da solución a lo que pido (pero tiene otro inconveniente):
Código HTML:
Ver original
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
Con esto funciona como debe pero el problema es que, impide subir el fichero, pero no da ningún aviso, por tanto mi script PHP no se entera de que el usuario ha intentado subir un archivo y no hay manera de avisarlo de que excede el tamaño máximo.
¿Alguna idea con PHP y HTML antes de tirar por JavaScript?. Un saludo.