Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Validar nombre de fichero introducido por un campo file

Estas en el tema de Validar nombre de fichero introducido por un campo file en el foro de Javascript en Foros del Web. Hola, Necesito de su ayuda, tengo un Form para subir un archivo: Código HTML: <form id= "formFac" name= "formFac" action= "uploadFileFactor.jsp" method= "post" enctype= "multipart/form-data" ...
  #1 (permalink)  
Antiguo 03/03/2016, 16:12
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Validar nombre de fichero introducido por un campo file

Hola,

Necesito de su ayuda, tengo un Form para subir un archivo:

Código HTML:
<form id="formFac" name="formFac" action="uploadFileFactor.jsp" method="post" enctype="multipart/form-data"
onsubmit="return comprobar()">
        <h4>Actualización de Parameros</h4>
        
        <span  >
         Carga de Archivo&hellip; <input id="inputFac" name="inputFac" title="Archivo TBLFACT" type="file" required >
        </span>
        <br>
        <br>
        <input id="inputbtnFac" class="btn btn-default" type="submit" value="Guardar" >

</form> 
Antes de cargar el archivo, necesito hacer una validación la cual consiste en que el Nombre del archivo sea el que yo le indico, es decir que solo cargue archivos con el nombre: "Texto.txt" (Validar el formato no me interesa, solo el nombre) y mandar un alerta en caso de que no sea igual el nombre del archivo.

Intente ya con javascript pero nada:

Código:
<script >
function comprobar()
{
   var valor = document.formFac.inputFac.value;
   
   if (valor != "Texto.txt" )
   {
   alert("NOMBRE INCORRECTO");
   return false;
   }
   else
{
 return true;
} 
}
</script>
Algún cable por favor.

Saludos!!
  #2 (permalink)  
Antiguo 03/03/2016, 19:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar nombre de fichero introducido por un campo file

Cuando cargas un archivo, se guarda la ruta entera, no solo su nombre.

Debes tomar el nombre a partir de la última barra inclinada invertida que separa al nombre del archivo del directorio en el que se encuentra. Para esto, debes utilizar los métodos .lastIndexOf(), para ubicar la posición de la última barra dentro de la ruta, y el método .substr(), para tomar la porción de la ruta a partir de la siguiente posición que sigue a la última barra.

Código Javascript:
Ver original
  1. var valor = document.formFac.inputFac.value,
  2.     posicion = valor.lastIndexOf("\\") + 1,
  3.     porcion = valor.substr(posicion);
  4.  
  5. alert(porcion); //El nombre del archivo y su extensión

Coloco dos barras inclinadas invertidas pues, si colocara una, se escaparían las comillas que le siguen, y ese no es el objetivo.

Un saludo
__________________
«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
  #3 (permalink)  
Antiguo 04/03/2016, 08:18
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Validar nombre de fichero introducido por un campo file

Cita:
Iniciado por Alexis88 Ver Mensaje
Cuando cargas un archivo, se guarda la ruta entera, no solo su nombre.

Debes tomar el nombre a partir de la última barra inclinada invertida que separa al nombre del archivo del directorio en el que se encuentra. Para esto, debes utilizar los métodos .lastIndexOf(), para ubicar la posición de la última barra dentro de la ruta, y el método .substr(), para tomar la porción de la ruta a partir de la siguiente posición que sigue a la última barra.

Código Javascript:
Ver original
  1. var valor = document.formFac.inputFac.value,
  2.     posicion = valor.lastIndexOf("\\") + 1,
  3.     porcion = valor.substr(posicion);
  4.  
  5. alert(porcion); //El nombre del archivo y su extensión

Coloco dos barras inclinadas invertidas pues, si colocara una, se escaparían las comillas que le siguen, y ese no es el objetivo.

Un saludo



Muchas Gracias, Tiene mucho sentido lo que mencionas, ya veo la razón por la cual no realizaba la validación correctamente.

Dejo el codigo final que utilice por si es de ayuda a alguien:

Código JavaScript
Código:
<script >
function comprobar()
{
   var valor = document.formFac.inputFac.value,
    posicion = valor.lastIndexOf("\\") + 1,
    porcion = valor.substr(posicion)
   
   if ( porcion != 'Texto.txt' )
   {
   alert("NOMBRE INCORRECTO");
   return false;
   
   }
   else
{
 return true;
} 
}
</script>
Saludos.

Etiquetas: campo, fichero, file, input, js, nombre, valor
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 00:01.