Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/11/2006, 03:26
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por califa010 Ver Mensaje
Buenas, agregaría que conviene pasar la extensión obtenida a mayúsculas (o a minúsculas) y comparar contra el valor válido en mayúsculas (o mínusculas, según se haya elegido). Dicho así tal vez no sea tan claro, pero con un ejemplo se ve mejor:

script1.sql
script2.SQL
script3.Sql

Los 3 nombres son posibles y (a menos que medie alguna extraña razón), válidos. Pero si se compara el nombre de la extensión contra el string 'sql', sólo el primero pasa la validación. La solución es hacer algo así:

Código PHP:
if (strtolower($extension) == 'sql'
en vez de

Código PHP:
if($extension == 'sql'

Por si a alguno le sirve, les dejo una función simple pero útil para validar cualquier extensión (en la llamada se determina cuál o cuáles son las extensiones válidas para un archivo)

Código PHP:
function validarExtensiones($nombreArchivo,$arrExtValidas) {
    
$extension strtolower(strrchr($nombreArchivo,'.'));
    
    
$valido false;
    
    foreach(
$arrExtValidas as $ext) {
        if (
$extension == $ext) {
            
$valido true;
        }
    }
    
    return 
$valido;
}

// Ejemplo
$arrExtValidas = array('.jpg','.bmp','.gif','.pdf','.jpeg');
$esValido validarExtensiones('alguna_foto.JPg',$arrExtValidas);
var_dump($esValido); 
Suerte
Califa
Te faltaría considerar en tu función los casos que comenté antes sobre nombre de archivos tipo:

nose.algo.algo.algo.extension

La validación que haces de las extensiones admitidas en el array podrías usar la función "in_array()" (en lugar del foreach() que empleas) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.