Hola a todos,
Arrastro un problema desde hace tiempo con las imágenes que recojo de un formulario y guardo en una carpeta.
El error es el siguiente:
Código PHP:
[11-Apr-2012 19:22:59] PHP Fatal error: Out of memory (allocated 117702656) (tried to allocate 2848 bytes) in ... on line 437
La única solución a este problema que he visto por todas partes es la siguiente:
Instalar al principio del script ini_set('memory_limit','16M');
Pero este no es mi caso, en primer lugar porque lo he intentado y siempre sigue dando el mismo error pero con mayores números y en segundo lugar porque mi servidor ya está configurado para soportar 264M
Así que no me queda más opción que recurrir a vosotros para ver si podéis ayudarme.
Dejo el código actual que estoy utilizando:
Código PHP:
<?php
if($_FILES['file']['name']!="") {
// Donde guardamos la imagen
$carpeta = '';
$tamano = $_FILES["file"]['size'];
$tipo = $_FILES["file"]['type'];
$archivo = $_FILES["file"]['name'];
$Temporal_Archivo1 = $_FILES["file"]['tmp_name'];
$imagen = $nuevoNombre1;
$destino1 = $carpeta.$imagen;
move_uploaded_file($Temporal_Archivo1, $destino1);
$Origen1 = imagecreatefromjpeg($destino1);
$ancho = ImagesX($Origen1);
$alto = ImagesY($Origen1);
if($ancho > $alto){
$t_ancho = 350;
$t_alto = $t_ancho * $alto / $ancho;
} else {
$t_alto = 263;
$t_ancho = $t_alto * $ancho / $alto;
}
$Nueva_Imagen = imagecreatetruecolor($t_ancho, $t_alto);
imagecopyresampled($Nueva_Imagen, $Origen1, 0, 0, 0, 0, $t_ancho, $t_alto, $ancho, $alto);
imagejpeg($Nueva_Imagen, $destino1, 80);
} else {
$nuevoNombre1 = "sin-imagen.jpg";
}
?>
Y así hasta 4 imágenes con el código repetido.
Cuando la imágen es más grande de lo habitual, alrededor de los 2.5M el problema siempre se produce a la misma altura: imagecreatefromjpeg($destino1);
Gracias de antemano!