Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2010, 12:03
Ember
 
Fecha de Ingreso: diciembre-2004
Ubicación: Madrid
Mensajes: 550
Antigüedad: 20 años
Puntos: 28
Problemas al subir imágenes al servidor

Muy buenas.

A ver, tengo un problema que no sé resolver en una página que hice y que, entre otras cosas, permite subir fotos al servidor. El problema viene dado cuando subo fotos de gran tamaño (por ejemplo, hoy he probado con una de 2.5 mb). Me da el siguiente error:

Fatal error: Out of memory (allocated 32768000) (tried to allocate 8448 bytes) in /homepages/15/d225205168/htdocs/utilImagenes.php on line 48

Cuando son fotos de 500 kb (por poner un ejemplo) suben perfectamente. Además de subir, hago una redimensión. Os pongo el código que utilizo:

Código PHP:
<?php
function redimensionar_imagen($imagen$nombre_imagen_asociada)
{
    
//establecemos los límites de ancho y alto
    
$nuevo_ancho 900;
    
$nuevo_alto 900;
    
//Recojo información de la imágen
    
$info_imagen getimagesize($imagen);
    
$alto $info_imagen[1];
    
$ancho $info_imagen[0];
    
$tipo_imagen $info_imagen[2];
    
    
//Determino las nuevas medidas en función de los límites
    
if($ancho $nuevo_ancho OR $alto $nuevo_alto)
    {
        if((
$alto $nuevo_alto) > ($ancho $nuevo_ancho))
        {
            
$nuevo_ancho round($ancho $nuevo_alto $alto,0);
        }
        else
        {
            
$nuevo_alto round($alto $nuevo_ancho $ancho,0);   
        }
    }
    else 
//si la imagen es más pequeña que los límites la dejo igual.
    
{
        
$nuevo_alto $alto;
        
$nuevo_ancho $ancho;
    }
    
    
// dependiendo del tipo de imagen tengo que usar diferentes funciones
    
switch ($tipo_imagen
    {
        case 
1//si es gif …
            
$imagen_nueva imagecreate($nuevo_ancho$nuevo_alto);
            
$imagen_vieja imagecreatefromgif($imagen);
            
//cambio de tamaño…
            
imagecopyresampled($imagen_nueva$imagen_vieja0000$nuevo_ancho$nuevo_alto$ancho$alto);
            
            if (!
imagegif($imagen_nueva,$nombre_imagen_asociada))
            {
                return 
false;
            }
            break;
        
        case 
2//si es jpeg …
            
$imagen_nueva imagecreatetruecolor($nuevo_ancho$nuevo_alto);
            
$imagen_vieja imagecreatefromjpeg($imagen);
            
//cambio de tamaño…
            
imagecopyresampled($imagen_nueva$imagen_vieja0000$nuevo_ancho$nuevo_alto$ancho$alto);
            if (!
imagejpeg($imagen_nueva,$nombre_imagen_asociada))
            {
                return 
false;
            }
            break;

        case 
3//si es png …
            
$imagen_nueva imagecreatetruecolor($nuevo_ancho$nuevo_alto);
            
$imagen_vieja imagecreatefrompng($imagen);
            
//cambio de tamaño…
            
imagecopyresampled($imagen_nueva$imagen_vieja0000$nuevo_ancho$nuevo_alto$ancho$alto);
            if (!
imagepng($imagen_nueva,$nombre_imagen_asociada))
            {
                return 
false;
            }
            break;
    }
    return 
true//si todo ha ido bien devuelve true
}
?>
¿Alguien sabe si estoy haciendo algo mal o si es que debo cambiar la función? El tema es que en el mismo servidor (1and1) tengo montada una tienda de oscommerce y puedo subir fotos de 2 mb sin problemas, así que descarto que sea ese el problema y me decanto por un problema de código, ¿verdad?

Muchas gracias de antemano