Foros del Web » Programando para Internet » Javascript »

verificar extension varios archivos antes de enviar

Estas en el tema de verificar extension varios archivos antes de enviar en el foro de Javascript en Foros del Web. muy buenas amigos tengo un formulario en el que ademas de texto, tiene la posibilidad de subir hasta 3 fotos y necesito que antes de ...
  #1 (permalink)  
Antiguo 22/01/2015, 04:48
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 13 años, 6 meses
Puntos: 24
verificar extension varios archivos antes de enviar

muy buenas amigos
tengo un formulario en el que ademas de texto, tiene la posibilidad de subir hasta 3 fotos
y necesito que antes de subir los datos se comprueben las extensiones de las fotos si las hubiese (1, 2 o 3)
tengo este codigo que me funciona bien con una sola foto pero no se como hacer para que me compruebe las tres y mientras haya errores en las extensiones no envie los datos a la base de datos.
el codigo que utilizo es este:
Código Javascript:
Ver original
  1. [CODE]<script LANGUAGE="JavaScript">
  2.  
  3.         function comprueba_extension(formulario, archivo) {
  4.            extensiones_permitidas = new Array(".gif", ".jpg", ".png");
  5.            mierror = "";
  6.            if (archivo) {
  7.               //recupero la extensión de este nombre de archivo
  8.               extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
  9.               //alert (extension);
  10.               //compruebo si la extensión está entre las permitidas
  11.               permitida = false;
  12.               for (var i = 0; i < extensiones_permitidas.length; i++) {
  13.                  if (extensiones_permitidas[i] == extension) {
  14.                  permitida = true;
  15.                  break;
  16.                  }
  17.               }
  18.               if (!permitida) {
  19.                  mierror = "Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: " + extensiones_permitidas.join();
  20.                }else{
  21.                   //submito!
  22.                  alert ("Todo correcto. Voy a subir el formulario.");
  23.                  formulario.submit();
  24.                  return 1;
  25.                }
  26.            }else{
  27.                alert ("Todo cohhhhhhhhhhhhrrecto. Voy a subir el formulario.");
  28.                  formulario.submit();
  29.                  return 1;
  30.                }
  31.            //si estoy aqui es que no se ha podido subir
  32.            alert (mierror);
  33.            return 0;
  34.         }
  35.     </script>[/CODE]

y los datos se los mando desde este botom:
Código HTML:
Ver original
  1. <div id="env"><button type="button" name="Submit" value="Enviar" class="envio" onclick="comprueba_extension(this.form, this.form.userfile1.value)">Actualizar en la Base de Datos </button></div>

gracias de antemano y espero que me podais ayudar o por lo menos darme alguna idea de como meterle mano, la verdad es que de javascrip no tengo mucha idea.
__________________
kolectivo grafico deNA
www.kgdena.com
  #2 (permalink)  
Antiguo 22/01/2015, 10:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: verificar extension varios archivos antes de enviar

Solo envía el formulario a la función, luego, busca en él a los elementos de tipo 'file' y recorre el conjunto resultante con un bucle para comprar la extensión de cada archivo.

Código Javascript:
Ver original
  1. var elementos = formulario.querySelectorAll("[type=file]");

Te recomiendo cortar la ejecución del bucle cuando se encuentre una extensión no permitida y solo en caso de estar todo bien, envías el formulario. Ten cuidado con esos return pues puedes terminar la ejecución de todo antes de tiempo, recuerda que ahora procesarás varios datos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: extension, formulario, funcion, verificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:44.