Buscador


En todo Internet
En Uterra.Com

Contenidos


 

La publicación de archivos en una Web es algo muy común, y no debemos permitir la publicación de ninguna clase de información en nuestra Web si no esta validada de alguna manera.
 
Esto siempre es cierto y muy importante, pero lo es aún más cuando lo que se pretende es la publicación de archivos. Un archivo con una extensión no permitida puede ser un simple obstáculo para el funcionamiento de un sitio Web, pero también puede ser un problema más serio para el propio sitio Web o incluso el servidor.
 
El siguiente código te permite validar la extensión del archivo que se pretende publicar, en este caso solo nos permite las extensiones .zip, .jpg y .pdf, como puede verse en el array “extArray”. Para eliminar o agregar nuevas extensiones vasta con modificar este array.
 
Por supuesto, no podemos olvidar que la validación en javascript puede ser violada, por lo que esta validación será solo un primer paso, la subsiguiente validación se realizara, por ejemplo, en PHP. Así tendremos nuestro servidor a salvo que la publicación de archivos que puedan alterar el funcionamiento de nuestra Web o incluso alterar o destruir nuestro servidor. También debemos tener presente que este código solo afecta al formulario, en ninguna medida podemos publicar un archivo en el servidor con javascript.
 
Sin más, el código completo es el siguiente:

<html>

<head>
<title>Valida la extensión del archivo que vamos a publicar.</title>

<script LANGUAGE="JavaScript">

extArray = new Array(".zip", ".jpg", ".pdf");
function LimitAttach(form, file) {
allowSubmit = false;
if (!file) return;
while (file.indexOf("\\") != -1)
file = file.slice(file.indexOf("\\") + 1);
ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) { allowSubmit = true; break; }
}
if (allowSubmit) form.submit();
else
alert("Se permiten únicamente archivos con la extención: " 
+ (extArray.join("  ")) + "\nPor favor, seleccione otro archivo "
+ "e intente de nuevo.");
}

</script>

</head>

<body>

<form method="post" action="procesa.php" enctype="multipart/form-data" name="valida_file">

  <input type="file" name="uploadfile"> <br> <br>
  
  <input type="button" name="Submit" value="Enviar"
  onclick="LimitAttach(this.form, this.form.uploadfile.value)">
  
</form>

</body>

</html>