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: 16 años, 2 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($caracteres, rand(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, $alto, 100);

                    
$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, $alto, 100);

                    
$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