Foros del Web » Programando para Internet » Javascript »

limitar formatos de imagen

Estas en el tema de limitar formatos de imagen en el foro de Javascript en Foros del Web. Hola: Sé que va a ser una pregunta muy tonta, pero a estas horas de la noche y llevando más de 13 horas trabajando, mi ...
  #1 (permalink)  
Antiguo 05/01/2012, 17:34
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 6 meses
Puntos: 2
Pregunta limitar formatos de imagen

Hola:
Sé que va a ser una pregunta muy tonta, pero a estas horas de la noche y llevando más de 13 horas trabajando, mi cabeza no da para más.
Tengo este formulario, quiero limitar los formatos de las imagenes que se suben al servidor y que después ponen la ruta en la bd y, aunque sale la alerta, y el archivo no se sube, en vez de pararse y obligar a que elija otro archivo, redirecciona al php del registro y los datos se introducen en las tablas ( aunque no el archivo o imagen si no está entre los formatos permitidos) y pocos segundos después, vuelve al html del formulario para que vuelva a rellenar el apartado del archivo, pero el usuario ya está registrado!!! Creo que me he liado un poco explicando, si no se entiende bien, probaré de nuevo. Por cierto, tb me dice en el campo imagen, que hay un error, que se está esperando un objeto, cosa que no entiendo tampoco, si luego sube la imagen al servidor.
html
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>USUARIOS NUEVOS</title>
<
link href="estilos.css" rel="stylesheet" type="text/css" />
<
link href="registro2.css" rel="stylesheet" type="text/css" />
<
script
function 
comprueba_extension(formularioarchivo) { 
   
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 
0extensiones_permitidas.lengthi++) { 
         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="registrandose.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="768" border="0">
        <tr>
          <td height="350" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td width="84%" height="124">
          <label for="imagen"></label>
            <input name="imagen" type="file" class="subirfoto"  id="imagen" 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">&nbsp;</td>
        </tr>
      </table></td>
      <td width="335"><table width="100%" height="768" border="0">
        <tr>
          <td height="103">&nbsp;</td>
        </tr>
        <tr>
          <td height="60"><label for="pais"></label>
            <input name="pais" type="text" class="pais" id="pais" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="21">&nbsp;</td>
        </tr>
        <tr>
          <td height="52"><label for="provincia"></label>
            <input name="provincia" type="text" class="provincia" id="provincia" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="15">&nbsp;</td>
        </tr>
        <tr>
          <td height="57"><label for="ciudad"></label>
            <input name="ciudad" type="text" class="ciudad" id="ciudad" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="5">&nbsp;</td>
        </tr>
        <tr>
          <td height="45"><label for="zona"></label>
            <input name="zona" type="text" class="zona" id="zona" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="21">&nbsp;</td>
        </tr>
        <tr>
          <td height="50"><label for="especie"></label>
            <input name="especie" type="text" class="especie" id="especie" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="15">&nbsp;</td>
        </tr>
        <tr>
          <td height="57"><label for="raza"></label>
            <input name="raza" type="text" class="raza" id="raza" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="5">&nbsp;</td>
        </tr>
        <tr>
          <td height="45"><label for="edad"></label>
            <input name="edad" type="text" class="edad" id="edad" maxlength="3" /></td>
        </tr>
        <tr>
          <td height="15">&nbsp;</td>
        </tr>
        <tr>
          <td height="61"><label for="sexo"></label>
            <select name="sexo" class="sexo" id="sexo">
<option>hembra</option>
<option>macho</option>
            </select></td>
        </tr>
        <tr>
          <td height="46">&nbsp;</td>
        </tr>
      </table></td>
      <td width="371"><table width="100%" height="768" border="0">
        <tr>
          <td height="103" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td width="43%" height="60"><input name="pedigri" type="radio" class="si" id="radio" value="si" checked="checked" />
            <label for=""></label></td>
          <td width="57%"><input name="pedigri" type="radio" class="no" id="radio2" value="no" />
            <label for="radio2"></label></td>
        </tr>
        <tr>
          <td height="21" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="52" colspan="2"><label for="capa"></label>
            <input name="capa" type="text" class="capa" id="capa" maxlength="20" /></td>
        </tr>
        <tr>
          <td height="15" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="57" colspan="2"><label for="nombreamo"></label>
            <input name="nombreamo" type="text" class="nombreamo" id="nombreamo" maxlength="30" /></td>
        </tr>
        <tr>
          <td height="5" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="45" colspan="2"><label for="telefono"></label>
            <input name="telefono" type="text" class="telefono" id="telefono" maxlength="15" /></td>
        </tr>
        <tr>
          <td height="21" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="50" colspan="2"><label for="email"></label>
            <input name="email" type="text" class="email" id="email" maxlength="35" /></td>
        </tr>
        <tr>
          <td height="15" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="57" colspan="2"><label for="usuario"></label>
            <input name="usuario" type="text" class="usuario" id="usuario" maxlength="40" /></td>
        </tr>
        <tr>
          <td height="5" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="45" colspan="2"><label for="contrasenna"></label>
            <input name="contrasenna" type="password" class="contrasena" id="contrasenna" maxlength="25" /></td>
        </tr>
        <tr>
          <td height="15" colspan="2">&nbsp;</td>
        </tr>
        <tr>
          <td height="61" colspan="2"><label for="repcontrasenna"></label>
            <input name="repcontrasenna" type="password" class="repcontrasenna" id="repcontrasenna" maxlength="25" /></td>
        </tr>
        <tr>
          <td height="46" colspan="2">&nbsp;</td>
        </tr>
      </table></td>
    </tr>
  </table>
</form>
</body>
</html> 
  #2 (permalink)  
Antiguo 06/01/2012, 14:14
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: limitar formatos de imagen

Te recomendaría mejor indicar en el form la acción onsubmit, en vez de en el botón de submit, y en tu función que revisa si la extensión es válida, si no lo es, regresar false, de lo contrario si no haces el return false, el formulario se enviará igualmente.

Etiquetas: funcion, imagenes, limitar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.