Después miro su tamaño e intento redimensionar(al mismo tamaño para poder comprimirla).
Aquí me surge el problema, solo me funciona con imagenes de tamaño y/o peso limitado, es decir, con imagenes de 1500x1000 y 400kb y me funciona, pero si intento subir las que me saca la camara, 3000 x 2000(aprox) y pesan 2 mb, no me funciona, adjunto el codigo y comento cual es la sentencia exacta donde para de funcionar.
Código PHP:
Ver original
<?php { $ruta= "fotos/".$_FILES['fichero']['name']; // Se guardaría dentro de "fotos" { if($_FILES['fichero']['type']=="image/jpeg") //solo permite la subida de archivos .jpg { { $dir = "fotos/"; $a=0; { { { $a++; // sumo 1 al contador si hay archivo o carpeta } } } $num=$a-3; rename("fotos/".$_FILES['fichero']['name'],"fotos/".$num.".jpg"); //remonbro el archivo que nos subi //echo "<b>Upload exitoso!. Datos:</b><br>"; //echo "Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"; //echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"; //echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"; //echo "<br><hr><br>"; } }else echo "Solo se permiten subir archivos jpg"; }else echo"Ha surgido un problema al subir la foto, intentelo mas tarde"; //VAMOS COMPROBAR TAMAÑO, HACERLA PEQ, MEDIANA, COMPRIMIRLA... echo $num."<br>"; echo "Ancho: ".$ancho." Alto: ".$alto; $nombre_archivo = 'fotos/'.$num.'.jpg'; echo "guardar"; //guardar if($ancho>$alto) //entonces anchoNuevo = 800 y altoNuevo= (alto/ancho)x800 { } else //entonces altoNuevo=800 y anchoNuevo= (ancho/alto)x800 { } } ?> <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data"> Archivo: <input name="fichero" type="file"> <input name="submit" type="submit" value="Upload!"> </form>
Mencionar que parte del codigo es copiado de otros hilos y/o de php.net
P.D. las imagenes que sean muy grandes también tengo pensado redimensionarla para que pesen menos.
P.D2: ¿si quiero mostrar imagenes en miniatura además de las imagenes grandes, me recomendais guardarlas en miniatura, o mostrarlas en tamaño pequeño modificandolo desde html?
Saludos y muchas gracias de antemano