3

comprobar el tipo de fichero con javascript

Javascript      24 Julio, 2007      2081 lecturas

si alguien esta pensando en hacer un un FTP vía web o un servidor de ficheros, puede que este código les sea útil

¿Que es lo que hace?

al enviar el formulario, comprueba que la extensión del fichero sea igual a:
BMP, GIF, JPG o PNG

En caso de que no se cumpla la condición, se devolverá un mensaje de error y se cancelará el envío

javascript:

function revisar(){
var obj=document.getElementById(‘txt_fichero’);
if(!obj.value.match(/\.(BMP|GIF|JPG|PNG)$/i)){
alert(‘tipo de fichero no valido’);
return false;
}
}

HTML:

<form action=”destino.php” onsubmit=”return revisar();” enctype=”multipart/form-data” method=”post”>
Elige un fichero:<br />
<input name=”fichero” id=”txt_fichero” type=”file” /><br />
<input type=”submit” value=”Enviar formulario” />
</form>

Nota:

Si lo que quieres es permitir subir cualquier tipo de fichero y restringir alguno, solo tienes que quitar el símbolo de exclamación (!), ejemplo:

if(obj.value.match(/\.(EXE|MSI|BIN)$/i))

Demostración:

Parte de este código se utiliza en cryptimg

Descargar ejemplo:

Compartir   twitter   del.icio.us   webeame   meneame   stumbleupon   mr.wong   ?  


  1. Alex

    Muy bueno el estracto de código.


    Ahora te reto a que encuentres solución a un problema al que me he enfrentado desde hace mucho en el upload via web (si te atreves).


    Cómo conseguir el upload de archivos bastante grandes con PHP y Javascript. El sistema tradicional de move_uploaded_file() me impone un límite menor a un mega, mientras que el cargador de Wordpress me sube hasta 6Mb o más, y otras aplicaciones “prefabricadas” consiguen estos resultados.


    Si encontraras la clave de esto, te debería una muy grande…. esque tiraría pétalos a tu paso.



  2. gafeman

    Hola Alex,


    sabes yo tambien tuve este problema al querer hacer una galeria de fotos


    no se si funcionara en tu servidor, pero en servage.net tuve que añadir esto en un fichero htaccess


    php_value max_execution_time 1000000

    php_value post_max_size 100000000

    php_value upload_max_filesize 100000000


    puede que me haya pasado con los numeros, pero de esta manera me aseguro de que no se va a parar :D



  3. Chicoblog

    Bastante interesante dejame decirlo, lo pondre a prueba, tus script’s son verdaderamente geniales!


    Saludos ^^