Página 1 de 1

Cómo determinar las extensiones de los archivos al subirlos

NotaPublicado: 2006-10-24 16:53 @745
por mydaboin
Buenas tengo una duda.

Tengo varios usuarios que envían sus fotos. El problema surge cuando mediante el cgi, estos suben archivos de texto: word, excel, power point ..
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if (-e $imagen){
                $archivo_imagen="../carpeta/imagenes/$contador.jpg";
                open (IMAGEN, ">$archivo_imagen");
        while ($lectura = read($imagen, $cadena, 1024)){
                print IMAGEN $cadena;
        }
                close IMAGEN;
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Cómo hacer para que determine que las extensiones: .doc, .ppt y .xls, las cuales no son permitidas o sólo las extensiones jpg y gif que deben ser las permitidas?

¡¡¡gracias de antemano por la ayuda!!! :D

NotaPublicado: 2006-10-24 17:58 @790
por creating021

NotaPublicado: 2006-10-24 18:40 @819
por explorer
Es siempre mejor filtrar por lo que esperamos recibir, que por aquello que podría llegar, sobre todo porque no sabemos todo lo que puede llegar.

Se podría intentar filtrar por la extensión del fichero, algo así como:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $imagen =~ /\.(jpe?g|gif|png|tiff?)$/ ) { ...
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y con eso tenemos una barrera muy buena, pero no impide que un usuario coja un MP3 y lo llame musica.jpg.

En ese caso hay que utilizar alguno de los módulos indicados antes.

Es posible que existan más técnicas.

NotaPublicado: 2006-10-24 20:06 @879
por creating021
Hay otra cosa que púedes hacer, usar Image::Info + el filtro que pone explorer

NotaPublicado: 2006-10-25 08:04 @378
por mydaboin
Gracias muy!!! ;)