Foros del Web » Programando para Internet » Javascript »

Controlar extensión en un input de tipo file antes de enviar formulario

Estas en el tema de Controlar extensión en un input de tipo file antes de enviar formulario en el foro de Javascript en Foros del Web. Hola, tengo un formulario con dos inputs del tipo file para que el usuario busque y seleccione dos archivos y quiero que al darle al ...
  #1 (permalink)  
Antiguo 14/01/2011, 07:01
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Controlar extensión en un input de tipo file antes de enviar formulario

Hola, tengo un formulario con dos inputs del tipo file para que el usuario busque y seleccione dos archivos y quiero que al darle al botón de enviar se controle la extensión de estos archivos. Necesito que el primero sea un .pdf y el segundo un .doc.

Tengo ya un pequeño script que controla si se ha seleccionado una opción de un desplegable, por lo que igual se puede meter en ese mismo script este control.
De todas formas, si hay otra forma de hacerlo, también sirve ;)

Os dejo el código que tengo de momento. Muchas gracias por adelantado, Salu2

Código ASP:
Ver original
  1. <head>
  2. <script language="javascript">
  3. function validar(frm) {
  4.  var ret;
  5.  if (frm.firma.value == "" ) {
  6.   alert('Por favor, seleccione si quiere firmar el informe o no');
  7.   ret = false;
  8.  }
  9. return ret;
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <form action="subir_fich.asp" method="post" enctype="multipart/form-data" name="frm" id="frm" onsubmit="return validar(this)">
  15.   <p>
  16.     <input name="fichero" type="file" id="fichero" />
  17.     <input name="fichero2" type="file" id="fichero2" />
  18.   </p>
  19.   <p>&iquest;El informe se va a firmar?
  20.     <select name="firma" id="firma">
  21.       <option value="" selected="selected"></option>
  22.       <option value="1">Si</option>
  23.       <option value="0">No</option>
  24.     </select>
  25.   </p>
  26.     <input name="Submit" type="submit" class="date" value="Enviar" />
  27. </form>
  28. </body>
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 14/01/2011, 15:58
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años
Puntos: 79
Respuesta: Controlar extensión en un input de tipo file antes de enviar formulario

para validar extgension con javascript
http://www.forosdelweb.com/f15/valid...7/#post1484680


segun entiendo, si quieres validar:
- tamaño
- extensión

tienes que ocupar action script con flash

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 17/01/2011, 05:50
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Respuesta: Controlar extensión en un input de tipo file antes de enviar formulario

Ya lo he resuelto, os dejo el resultado, por si a alguien le hace falta ;)

Código Javascript:
Ver original
  1. <script language="javascript">
  2. function Right(str, n)
  3.         /***
  4.                 IN: str - the string we are RIGHTing
  5.                     n - the number of characters we want to return
  6.  
  7.                 RETVAL: n characters from the right side of the string
  8.         ***/
  9.         {
  10.                 if (n <= 0)     // Invalid bound, return blank string
  11.                    return "";
  12.                 else if (n > String(str).length)   // Invalid bound, return
  13.                    return str;                     // entire string
  14.                 else { // Valid bound, return appropriate substring
  15.                    var iLen = String(str).length;
  16.                    return String(str).substring(iLen, iLen - n);
  17.                 }
  18.         }
  19. </script>  
  20.  
  21. <script language="javascript">
  22. function validar(frm) {
  23.  var ret;
  24.  var txt;
  25.  var txt2;
  26.  
  27.  txt = Right(frm.fichero.value,3);
  28.   txt2 = Right(frm.fichero2.value,3);
  29.  if (txt != "pdf"){
  30.   alert('Por favor, el primer archivo debe ser .pdf');
  31.   ret = false;
  32.  }
  33.  if (txt2 != "doc"){
  34.   alert('Por favor, el segundo archivo debe ser .doc');
  35.   ret = false;
  36.  }
  37.  if (frm.firma.value == "" ) {
  38.   alert('Por favor, seleccione si quiere firmar el informe o no');
  39.   ret = false;
  40.  }
  41. return ret;
  42. }
  43. </script>

La primera función saca N caracteres de una cadena dada. A partir de ahí saco los tres últimos de ambos campos file y compruebo que sean pdf y doc respectivamente. Si se cumple, sigue adelante, sino, avisa al usuario ;)
__________________
Vayamos por Partes :: Jack el Destripador

Etiquetas: controlar, enviar, file, input, tipo, formulario
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 04:46.