Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2007, 05:31
xias
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 24 años, 9 meses
Puntos: 1
validar input type file

hola:

encontré en el foro 2 cosas:

1. validar que el tipo de imagen a subir sea una determinada

2. truquillo para que no se pueda escribir en input type file.

lo primero lo hago asi:

Código PHP:
function LimitAttach(tField,iType)
{ 
    
file=tField.value; 
    if (
iType==1)
    { 
        
extArray = new Array(".gif",".jpg",".png"); 
    } 
    if (
iType==2)
    { 
        
extArray = new Array(".swf"); 
    } 
    if (
iType==3)
    { 
        
extArray = new Array(".exe",".sit",".zip",".tar",".swf",".mov",".hqx",".ra",".wmf",".mp3",".qt",".med",".et"); 
    } 
    if (
iType==4)
    { 
        
extArray = new Array(".mov",".ra",".wmf",".mp3",".qt",".med",".et",".wav"); 
    } 
    if (
iType==5)
    { 
        
extArray = new Array(".html",".htm",".shtml"); 
    } 
    if (
iType==6)
    { 
        
extArray = new Array(".doc",".xls",".ppt"); 
    } 
    
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)
    { 
    
document.getElementById('ruta_fichero').value=document.getElementById('foto').value;
    }
    else
    { 
//        tField.value=""; 
        
document.getElementById('ruta_fichero').value="";
        
alert("Usted sólo puede subir archivos con extensiones " + (extArray.join(" ")) + "\nPor favor seleccione un nuevo archivo"); 
    } 
} 
el problema de esto es que lo valida cuando envio el formulario y no en cuanto elijo la imagen(validar antes de envio de formulario)...¿como podria soluionar esto?

en cuanto lo segundo lo hago asi:
Código PHP:
        <div id="todoElFile">
          <
input style="width:0px;position:absolute;left:185px;top:199px;height:16px;font-size:10px;border:solid 1px;border-color: #666666;" type="file" name="foto" id="foto" onblur="LimitAttach(this,1) ">
          <
input type="text" style="width:70px;height:16px;font-size:10px;border:solid 1px;border-color: #666666;" readonly name="ruta_fichero">
        </
div> 
el problema de este es que no me mete el valor del campo file en el campo text hasta que valido...y querrria que se hiciera cuando elijo la imagen tambien..

conclusion:

lo ideal seria

campo tipo text read only.
pulsar sobre examinar y elegir imagen
si la imagen no es correcta-> error...
si la imagen es correcta -> se mete el valor de la imagen elegida en el input text y se acabo.

no se si me explique bien...

gracias, un saludo
__________________
Muchas gracias, saludos.