Foros del Web » Programando para Internet » Javascript »

Limitaciones a los archivos con javascript

Estas en el tema de Limitaciones a los archivos con javascript en el foro de Javascript en Foros del Web. El problema que tengo es que quiero limitar los archivos que introducen en mi formulario (que después con php se suben directamente a mi web). ...
  #1 (permalink)  
Antiguo 14/02/2006, 08:28
Avatar de niconico  
Fecha de Ingreso: enero-2006
Mensajes: 166
Antigüedad: 18 años, 4 meses
Puntos: 0
Limitaciones a los archivos con javascript

El problema que tengo es que quiero limitar los archivos que introducen en mi formulario (que después con php se suben directamente a mi web). Para ello tengo un script de javascript para exigirles a través de un alert que sólo sean archivos .jpg y .gif.
Mi script es:
if (theForm.archivito.value != *.gif,*.jpg)
{
alert("Introduzca un Archivo");
theForm.archivito.focus();
return (false);
}
Gracias por la ayuda estoy un poco atascado
  #2 (permalink)  
Antiguo 14/02/2006, 09:54
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola niconico

Mira si te sirve el código de la FAQ-140

Saludos,
  #3 (permalink)  
Antiguo 14/02/2006, 10:47
Avatar de niconico  
Fecha de Ingreso: enero-2006
Mensajes: 166
Antigüedad: 18 años, 4 meses
Puntos: 0
a vueltas con javascript

Gracias por responder, pero lo que yo necesito es más sencillo, simplemente un par de órdenes o una función con javascript que indique que en caso de que los archivos que se insertan tengan una determinada extensión pues salga un alert indicando que esa no es la extensión permitida. Gracias
  #4 (permalink)  
Antiguo 14/02/2006, 18:38
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Probá con esto:

Código:
function validarExtension (archivo) {
	var nombreArchivo = archivo.value;
	var posicionPunto = nombreArchivo.lastIndexOf(".");
	var extensionOriginal = nombreArchivo.substring(posicionPunto);
	var extension = extensionOriginal.toLowerCase();
	if (extension != ".jpg" && extension != ".gif" && extension != ".jpeg") {
		alert("la extensión no es válida");
		return false;
	}
	return true;
}
Al form agregale onSubmit="validarExtension(this.archivo);"

Al input file, llamalo archivo -- o el nombre que quieras, pero entonces cambiá el parámetro cuando llamás a la función al enviar el form (onSubmit).

Básicamente, lo que hace esta función es tomar el nombre del archivo, buscar el último punto y obtener así la extensión. La pasa después a minúsculas, por si el archivo se llamar "algo.JPG" en vez de ".jpg". Y después, simplemente se fija si la extensión es ".gif", ".jpg" o ".jpeg". Si no es, no envía el formulario y muestra un mensaje de error. En caso de que sea válida, manda el form.

Algo muy importante a tener en cuenta, que vale en general para todo lo que sea validación del lado del cliente -- léase, con JS-- y especialmente si se trata de subir archivos al servidor. Hacé de cuenta que no estás validando nada. La validación en JS es simplemente algo que hacés para hacerle las cosas más fáciles a un usuario, para que no pierda tiempo esperando que se suba un archivo que después va a "rebotar" porque no está permitido, para darle un pista sobre cuál puede ser el error que está cometiendo, etc. Pero como validación en sí, vale poco y nada. Siempre validá del lado del servidor (con php, asp o lo que fuera), porque todo lo que está del lado del cliente es fácilmente manipulable (y está fuera de tu control). O sea: si querés que a tu server sólo suban .jpg's y .gif's asegurate de que no se suba ningún otro archivo con php. No confíes en JS, porque se trampea muy fácil.

Suerte
Califa
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 16:23.