Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2012, 12:59
Avatar de standby82
standby82
 
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años, 1 mes
Puntos: 0
Tiempo de ejecución

Hola

Tengo una dudilla que me esta volviendo loco, os cuento.

Tengo un formulario en html con varios campos de texto y tres input para subir imagenes.

Cuando seleciono las tres imagenes y le doy a aceptar, php me hace lo siguiente:

Coge cada una de las imagenes y por cada imagen hace dos, una de 574*431 y otra de 80*60 y las guarda con nombres aleatorios en una carpeta del servidor (en mi caso mi pc).

Todo funciona perfectamente, pero me he dado cuenta que cuando seleciono imagenes grandes, (grandes de tamaño no de peso), parece ser que le cuesta mas hacerlas pequeñas y el resultado es que solo me hace una de las tres.

He pensado que podía ser el tiempo limite de ejecucion, pero lo tengo a 30 y el proceso no llega ni a 10 segundos.

Alguien se le ocurre porque puede pasar.

Os pongo el código que he hecho para hacerlas pequeñas

Código PHP:
$files $_FILES['file'];  // en el array $files guardamos los nombres de todas las imagenes
    


        
$destino '../../fotos_anuncio' // carpeta de destino
        
for($c=0;$c<count($files['name']);$c++) // hacer el for tantas veces como imagenes con nombre halla aunque este en blanco
         
{
                   
//echo $files['name'][$c];
            
if($files['name'][$c]!==""//si no esta vacío
                
{
                if (
validar_ext($files['type'] [$c]))
                        {
                        
                            
//creamos nombres aleatorios para cada imagen
                                
$nombre_extension$files['name'] [$c]; 
                                
$nombre_extension strtolower($nombre_extension) ;
                                
$extension split("[/\\.]"$nombre_extension) ;
                                
$n count($extension)-1;
                                
$extension $extension[$n];
                                
                                    
                                
$random1 substr(md5(time().rand()),2,10);
                                
$random2 substr(md5(time().rand()),2,10);
                                
$nombre_archivo "$random2$random1.$extension"//nombre
                                
$files'name' ] [$c]= $nombre_archivo;
                            
                                
$nombre_imagen[$i]=$nombre_archivo// nombre de os archivos para luego guardarlos en la bse de datos
                                
$i++;
                            
                        
// creamos imagenes principales de anchura574 y altura 431
                                
$anchura ="574";
                                
$hmax ="431";
                                
$anchura_tumb ="80";
                                
$hmax_tumb ="60";
    
                                
$nombre_temporal=$files['tmp_name'][$c]; //imageb
                                
$datos getimagesize($nombre_temporal);
                            
                                if(
$datos[2]==1){$img = @imagecreatefromgif($nombre_temporal);}
                                if(
$datos[2]==2){$img = @imagecreatefromjpeg($nombre_temporal);} 
                                if(
$datos[2]==3){$img = @imagecreatefrompng($nombre_temporal);}
                                
$ratio = ($datos[0] / $anchura);
                                
$altura = ($datos[1] / $ratio);
                                
$ratio_tumb = ($datos[0] / $anchura_tumb);
                                
$altura_tumb = ($datos[1] / $ratio_tumb);
                                
                                if(
$altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
                                if(
$altura_tumb>$hmax_tumb){$anchura2_tumb=$hmax_tumb*$anchura_tumb/$altura_tumb;$altura_tumb=$hmax_tumb;$anchura_tumb=$anchura2_tumb;}
                                
$foto imagecreatetruecolor($anchura,$altura);
                                
$tumb imagecreatetruecolor($anchura_tumb,$altura_tumb);
                                
imagecopyresampled($foto$img0000$anchura$altura$datos[0], $datos[1]);
                                
imagecopyresampled($tumb$img0000$anchura_tumb$altura_tumb$datos[0], $datos[1]);
                                if(
$datos[2]==1){imagegif($foto,  $directorio."/".$nombre_archivo);}
                                if(
$datos[2]==2){imagejpeg($foto$destino."/".$nombre_archivo75);}
                                if(
$datos[2]==3){imagepng($foto,  $directorio."/".$nombre_archivo); }
                                
$tumbocilla="tumb";
                                if(
$datos[2]==1){imagegif($tumb,  $directorio."/".$tumbocilla.$nombre_archivo);}
                                if(
$datos[2]==2){imagejpeg($tumb$destino."/".$tumbocilla.$nombre_archivo75);}
                                if(
$datos[2]==3){imagepng($tumb,  $directorio."/".$tumbocilla.$nombre_archivo); }
                                
                                
//Eliminamos archivo temporal
                                
                                
unlink($nombre_temporal);
                                
                    }
                    else
                    {
                        echo 
"El archivo \"".$files['name'][$c]."\" no es valido<br/>";
                    } 
//if validar ext
                
}    
                else
                { 
                echo 
" esta vacio <br />";
                }
// if de vacío
                    
                    
                            
   
 
//for primero