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>