Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2010, 19:39
Avatar de geeck22
geeck22
 
Fecha de Ingreso: agosto-2010
Ubicación: Tijuana B.C.
Mensajes: 79
Antigüedad: 14 años, 3 meses
Puntos: 7
Pregunta Manipular Imagen Temporal?? $_FILES['userfile']['tmp_name']

tengo un pequeño problemilla que me esta volviendo loco,
les explico, quiero que el usuario al cargar una imagen esta se redimencione para que juege el papel de thumbnail, y la misma imagen que subio se redimencione a un tamaño maximo si es mas grande..

que estoy haciendo mal? D:
Código PHP:
                    <?php
                    $folder 
"../../../galeria/blusas/";
                    
$folder_mn "../../../galeria/blusas/mn/";
                    
$maxlimit 5242880;
                    
$allowed_ext "jpg,gif,bmp,png,jpeg";
                    
$overwrite "no";
                    
$match ""
                    
$filesize $_FILES['userfile']['size'];
                    
$caracteres "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
                    
$rango 6;
                    
$max=strlen($caracteres)-1;
                    for (
$i=0;$i<$rango;$i++) {
                    
$filenamerand .= substr($caracteresrand(0$max), 1);}
                    
$filename = ($filenamerand).".".end(explode('.',$_FILES['userfile']['name']));
                    
$filename_mn = ($filenamerand)."-mn".".".end(explode('.',$_FILES['userfile']['name']));
                    
$error "";
                    
$original $_FILES['userfile']['name'];

                    
$global[0] = $_FILES['userfile']['tmp_name'];
                    
$global[1] = $_FILES['userfile']['tmp_name'];
                    
                    
$imagen $global[0];    
                    
$origen$imagen;
                    
$destino $imagen;
                    
$destino_temporal=tempnam("tmp/","tmp");
                    
$maxsize[0] =640;
                    
$maxsize[1] =480;
                    
$size GetImageSize($origen);
                               
$width $size[0];  
                               
$height $size[1];  
                    
$ancho $maxsize[0];
                    
$alto  $maxsize[1];

                    if (
$ancho && ($size[0] < $size[1])) {
                        
$ancho = ($alto $size[1]) * $size[0];
                    } else {
                        
$alto = ($ancho $size[0]) * $size[1];
                    } 

                    
redimensionar_jpeg($origen$destino_temporal$ancho$alto100);

                    
$fp=fopen($destino,"w");
                    
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
                    
fclose($fp);

                    function 
redimensionar_jpeg($img_original$img_nueva$img_nueva_anchura$img_nueva_altura$img_nueva_calidad)
                    {
                        
$img ImageCreateFromJPEG($img_original);
                        
$thumb imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
                        
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
                        
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
                        
//ImageDestroy($img);
                    
}
                    
$imagen_mn $global[1];    
                    
$origen$imagen_mn;
                    
$destino $imagen_mn;
                    
$destino_temporal=tempnam("tmp/","tmp");
                    
$maxsize[0] =200;
                    
$maxsize[1] =200;
                    
$size GetImageSize($origen);
                               
$width $size[0];  
                               
$height $size[1];  
                    
$ancho $maxsize[0];
                    
$alto  $maxsize[1];

                    if (
$ancho && ($size[0] < $size[1])) {
                        
$ancho = ($alto $size[1]) * $size[0];
                    } else {
                        
$alto = ($ancho $size[0]) * $size[1];
                    } 

                    
redimensionarmn_jpeg($origen$destino_temporal$ancho$alto100);

                    
$fp=fopen($destino,"w");
                    
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
                    
fclose($fp);

                    function 
redimensionarmn_jpeg($img_original$img_nueva$img_nueva_anchura$img_nueva_altura$img_nueva_calidad)
                    {
                        
$img ImageCreateFromJPEG($img_original);
                        
$thumb imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
                        
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
                        
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
                        
//ImageDestroy($img);
                    
}
                    
move_uploaded_file($imagen_mn$folder_mn.$filename_mn);
                    
                    if(!
$filename || $filename==""){ 
                       
$error "- Ningún archivo selecccionado para subir.<br>";
                    }elseif(
file_exists($folder.$filename) && $overwrite=="no"){
                       
$error "- El archivo <b>$filename</b> ya existe<br>";
                    }

                    if(
$filesize 1){ 
                       
$error .= "- Archivo vacío.<br>";
                    }elseif(
$filesize $maxlimit){ 
                       
$error .= "- Este archivo supera el máximo tamaño permitido.<br>";
                    }

                    
$array_ext explode (';',$allowed_ext);
                    
$ext strstr($filename['name'],'.');
                    
$ext=substr($ext,1);
                        if (!
in_array($ext,$array_ext)) {
                            
$match 1;
                    }

                    if(!
$match){
                       
$error .= "- Este tipo de archivo no está permitido: $filename<br>";
                    }
                    
                    if(
$error){
                       print 
"Se ha producido el siguiente error al subir el archivo:<br> $error";
                    }else{
                       if(
move_uploaded_file($imagen$folder.$filename)){ 
                    
mysql_connect('localhost','root','') or die('<b>Error conectando al servidor MySQL:</b><br />'.mysql_error());
                    
mysql_select_db('cherry') or die('<b>Error seleccionando la base de datos:</b><br />'.mysql_error()); 
                    
mysql_query("INSERT INTO blusas (id, imagen, nombre) VALUES ('', 'http://127.0.0.1/cherry Remodelacion/galeria/blusas/$filename', '$original')");
                    
                        echo 
'Se subio bien ';
                        echo 
$filename;
                          }else{
                          print 
" Error"
                       }
                       }
                       
?>
Saludos