Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2007, 05:31
xias
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 23 años, 2 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("\\") != -1file file.slice(file.indexOf("\\") + 1); 
    
ext file.slice(file.indexOf(".")).toLowerCase(); 
    for (var 
0extArray.lengthi++)
    { 
        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.