Continuando con el desarrollo de una aplicación para la captura de proyectos turísticos me tope con el siguiente problema:
En primera instancia cuando el usuario captura la información, llegado al apartado de subir fotografías es necesario válidar que solamente pueda subir un máximo de 5 archivos, si intenta subir más debe arrojar la notificación y no dejarlo avanzar, en está parte no hay ningún problema porque solamente cuento cuantos archivos se están intentando subir, si son más de 5 le notificó al usuario.
El problema viene después en la parte de “Modificar o editar el registro” ya que es necesario saber cuantos archivos se subieron anteriormente y volver a limitar un máximo de 5 archivos por registro.
Lo que hago es por medio de una función, contar cuantos archivos se encuentran dentro del directorio del registro, esto lo hago de la siguiente manera:
1 2 3 | //contamos cuantas fotografías tenemos cargadas en la carpeta function countFolder($dir) { return (count(scandir($dir)) - 2); } $fotoscargadas = countFolder('fotosrv/'.$idrv.'/'); |
Después de contar el total de archivos que tengo en la carpeta lo guardo en una variable para posteriormente jalarlo desde jQuery y lo reste al máximo permitido que son 5, si tomamos de referencia el ejemplo, le mandaré un valor 3 el cual se lo restare a 5 y sólo deberá permitir subir 2 fotos más.
1 2 3 4 5 | if (ins > 0) { //si se pueden guardar las fotos }else{ //Muestro error de que está intentando subir más de 5 fotografías } |
También pueden optar por esconder el botón que permite seleccionar las fotografías
1 2 3 4 5 | if ($fotoscargadas>=5) { //escondo el boton y muestro un mensaje que se alcanzo el máximo permitido }else{ //muestro el botón } |
Ojalá a alguien le sea de utilidad