Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2012, 14:48
cheterporras2
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 6 meses
Puntos: 2
Pregunta permitir campo imagen vacio

Hola:

Tengo un par de problemillas. Tengo este código, va perfecto, valida que sea una imagen con un determinado formato y si es correcto, envía el formulario. Lo que yo quisiera es que lo validara sólo si existe la imagen, es decir, que si al usuario no le apetece o no tiene foto en ese momento, pueda enviar el formulario igual, aunque sin foto, pero no puedo, he intentado modificarlo pero no me termina de salir. Creo que tiene que ser algo muy sencillo, pero estoy un poco atascada. Por otra parte, también me gustaría que no permitiera imágenes mayores de 100kb, tengo la limitación hecha en php (por el lado del servidor), pero me gustaría también, si se puede, limitarlo por javascript, ¿es posible hacerlo?, ¿cómo sería?. Un saludo muy grande y gracias de antemano. Mi código (ojo, sólo he puesto lo imprescindible para mis preguntas, poner más me parece un poco absurdo, por eso, si hay alguna incongruencia con los cierres y eso, que no se alarme nadie, jeje):
Código PHP:
<html>
<head>
<script>
function comprueba_extension(formulario, archivo) { 
   extensiones_permitidas = new Array(".gif", ".jpg", ".jpeg", ".png"); 
   mierror = ""; 
   if (!archivo) { 
      //Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario 
       mierror = "No has seleccionado ningún archivo"; 
   }else{ 
      //recupero la extensión de este nombre de archivo 
      extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase(); 
      //alert (extension); 
      //compruebo si la extensión está entre las permitidas 
      permitida = false; 
      for (var i = 0; i < extensiones_permitidas.length; i++) { 
         if (extensiones_permitidas[i] == extension) { 
         permitida = true; 
         break; 
         } 
      } 
      if (!permitida) { 
         mierror = "Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: " + extensiones_permitidas.join(); 
       }else{ 
          //submito! 
         alert ("Todo correcto. Voy a submitir el formulario."); 
         formulario.submit(); 
         return 1; 
       } 
   } 
   //si estoy aqui es que no se ha podido submitir 
   alert (mierror); 
   return 0; 



</script>
</head>

<body class="fondoregistro">
<form action="registro.php" method="post" enctype="multipart/form-data"  name="formulario" id="formulario">
  <table width="1024" height="768" border="0">
    <tr>
      <td width="304" height="768"><table width="100%" height="618" border="0">
        <tr>
          <td height="350" colspan="2"><img src="images/cancelar.png" alt="" width="<?php if($error_img=='error'){echo '60';}else{echo '0';} ?>" height="<?php if($error_img=='error'){echo '60';}else{echo '0';} ?>" class="xsubir" /></td>
        </tr>
        <tr>
          <td width="84%" height="46">
          <label for="imagen"></label>
            <input name="imagen" type="file" class="subirfoto"  id="imagen" value="<?php echo $_FILES['imagen']['tmp_name']; ?>" size="12" />
            
            </td>
          <td width="16%"><input name="button" type="submit" onclick="comprueba_extension(this.form, this.form.imagen.value)" class="botonenvio" id="button" value="Enviar" /></td>
        </tr>
        <tr>
          <td height="148" colspan="2"><span class="style2"><?php echo $error?></span></td>
        </tr>
      </table></td>
     </form>
</body>
</html>