Estoy haciendo un script en el que subo una foto y la renombro al numero siguiente a las que hay en el directorio.
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
if (isset($_POST['submit'])) {
$ruta= "fotos/".$_FILES['fichero']['name']; // Se guardaría dentro de "fotos"
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) // verifica haya sido cargado el archivo {
if($_FILES['fichero']['type']=="image/jpeg") //solo permite la subida de archivos .jpg
{
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta)) // se coloca en su lugar final {
$dir = "fotos/";
$a=0;
{
{
while (($archivo = readdir($gd)) !== false) {
$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>";
list($ancho, $alto) = getimagesize("fotos/".$num.".jpg"); //devuelve el tamaño de la imagen echo "Ancho: ".$ancho." Alto: ".$alto;
$nombre_archivo = 'fotos/'.$num.'.jpg';
header('Content-type: image/jpeg');
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