Ver Mensaje Individual
  #10 (permalink)  
Antiguo 01/06/2010, 00:21
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 3 meses
Puntos: 188
Respuesta: restringuir los archivos permitidos en el explorer que abre un input fil

Gracias amigos, ya había visto aquel tema. Pero se me complica adaptarlo a mi código.

Verán les pondre una manera que a mi parecer es más sencilla para validar extenciones de archivos, yo la hice y por ser nuevo en esto uso código mas simple.

Además que son menos archivos y menos lineas.


validador.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $imageFile = $_POST['imageFile'];
  4. $imageType = strtolower(substr(strrchr($imageFile, "."), 1));
  5.  
  6. if($imageType == "jpg" || $imageType == "gif" || $imageType == "png" || $imageType == "bmp"){ echo "1"; } else { echo "2"; }
  7.  
  8. ?>


archivo html
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <script type="text/javascript" language="javascript">
  5.    //Creo objeto XMLHTTPREQUEST
  6.    function nuevoAjax(){
  7.     var xmlhttp=false;
  8.     try {
  9.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  10.     } catch (e) {
  11.         try {
  12.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  13.         } catch (E) {
  14.             xmlhttp = false;
  15.         }
  16.     }
  17.  
  18.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  19.         xmlhttp = new XMLHttpRequest();
  20.     }
  21.     return xmlhttp;
  22. }
  23.    
  24.    //Valido extencion de la imagen
  25.    function validar(){
  26.       var ajax = nuevoAjax(),
  27.           imagen = document.getElementById('imageFile').value;
  28.          
  29.           function updateTipsAlert(t){
  30.             alert(t);
  31.             return false;
  32.           }
  33.          
  34.           function updateTips(t){
  35.             document.getElementById('validates').innerHTML = t;
  36.           }
  37.  
  38. if(imagen.length <= 0) { updateTips('Debes escoger un archivo'); }
  39.  else {
  40.  
  41.     ajax.open("POST", "validador.php",true);     
  42.     ajax.onreadystatechange=function() {
  43.         if (ajax.readyState==4) {
  44.            
  45.         if(ajax.responseText==2) {
  46.        
  47.         updateTipsAlert('El formato no es valido');
  48.            
  49.                                //Creo un nuevo campo file
  50.             tagDiv = document.createElement('div');
  51.             tagDiv.setAttribute("style","position:absolute; top:0px; left:0px; width:148px; height:20px; background:url(http://midominio.com/transparente.gif); background-repeat:repeat;");
  52.            
  53.             control = document.createElement("input");
  54.             control.setAttribute("type", "file");
  55.             control.setAttribute("name","imageFile");
  56.             control.setAttribute("id","imageFile");
  57.             control.setAttribute("onchange","validar();");
  58.  
  59.             //Borro el campo file anterior
  60.             document.getElementById('validateTips').innerHTML = "";
  61.            
  62.                                          document.getElementById('validateTips').appendChild(tagDiv);
  63.             document.getElementById('validateTips').appendChild(control);
  64.        
  65.         }
  66.            
  67.         }
  68.     }
  69.    
  70. }
  71.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  72.     ajax.send("imageFile="+imagen);
  73.          
  74.          
  75.   }
  76.  
  77. </head>
  78.  
  79. <p id="validates"></p>
  80. <div id="validateTips" style="position:relative;">
  81. <div style="position:absolute; top:0px; left:0px; width:148px; height:20px; background:url(http://midominio.com/transparente.gif); background-repeat:repeat;"></div>
  82. <input type="file" name="imageFile" id="imageFile" onchange="validar();"  />
  83. </div>
  84. </body>
  85. </html>


Espero que se entienda, no lo he organizado pero lo he probado y funciona.

Que opinan.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.