Foros del Web » Programando para Internet » PHP »

[GD] 1 imagen // 2 copias, diferentes dimensiones y dirs

Estas en el tema de [GD] 1 imagen // 2 copias, diferentes dimensiones y dirs en el foro de PHP en Foros del Web. Q pasó! Primer post en el foro.. Quería hacer una cosilla : Subir una imagen, redimensionarla a un tamaño y guardarla en un directorio; y ...
  #1 (permalink)  
Antiguo 17/05/2006, 14:17
Avatar de 100
100
 
Fecha de Ingreso: mayo-2006
Ubicación: Ferror
Mensajes: 3
Antigüedad: 17 años, 11 meses
Puntos: 0
[GD] 1 imagen // 2 copias, diferentes dimensiones y dirs

Q pasó!

Primer post en el foro..


Quería hacer una cosilla :

Subir una imagen, redimensionarla a un tamaño y guardarla en un directorio; y después crear un thumbnail y gurdarlo en otro directorio.


Quité unas cuantas cosas y quedó en esto ( supongo q lo puedo dejar mejor ). Con un formulario envío la imagen al script. Habilité 2 directorios con los mismos nombres q dejé en las variables correspondientes y en la ruta correcta. De hecho copia, redimensiona la imagen en el directorio "fotosConciertos/", pero en el directorio donde debe copiar y redimensionar como thumbnail, "fotosConciertosT/", crea el archivo de imagen con las dimensiones del thumbnail, pero no llega a copiar la imagen original al nuevo archivo, quedando un archivo de color negro.




error q pone :

Warning: imagecreatefromjpeg(fotosConciertosT/imagen.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\AppServ\www\disco600\nueva web\subirFotoConcierto.php on line 100


Logicamente el apache y php versión está para q soporte GD2 y eso


Supongo q será una tontería pero no alcanzo. No llevo mucho en esto de la programación..



el script :


Código PHP:
if ($_POST['submit']){
    

    
copiarRedImagen ();

    
    
}else{
    
    echo 
"Imagen no recibida";
    
};

function 
copiarRedImagen (){
    
    
$extensiones = array('.jpg','.jpeg','.gif','.png');
    
$anchura_max 800;
    
$altura_max 600;
    
$tamano_max=512000;
    
    
$imgarchivo $_FILES['imgarchivo']['name'];
    
$imgarchivo strtolower$imgarchivo );
    
$temporal $_FILES['imgarchivo']['tmp_name'];
    
$fichero_ruta"fotosConciertos/" $imgarchivo;
    
$fichero_ruta_thumb"fotosConciertosT/tn_" $imgarchivo;
    
$redx "600";
    
$redy "450";
    
$redx_thumb "100";
    
$redy_thumb "75";

    if ( 
file_exists ($fichero_ruta) ){
        
        echo 
"Imagen ya existe";

    };
    
    
move_uploaded_file($temporal,$fichero_ruta);
    
move_uploaded_file($temporal,$fichero_ruta_thumb);

    
$datos getimagesize ($fichero_ruta);
    
$ext strrchr($fichero_ruta,".");
    
$ext_correcta="no";

    foreach (
$extensiones as $extension){
        
        if (
$ext == $extension){
            
            
$ext_correcta="si";
        
        }
    }
    
    if (
$ext_correcta=="no"){
        
        
unlink ($fichero_ruta);
        
unlink ($fichero_ruta_thumb);
        
    }
    
    
$tamano=filesize($fichero_ruta);
        
    if (
$tamano>$tamano_max){
        
        
unlink ($fichero_ruta);
        
unlink ($fichero_ruta_thumb);
            
    }
        
    if ((
$anchura_max!=0) && ($datos[0]>$anchura_max)){
        
        
unlink ($fichero_ruta);
        
unlink ($fichero_ruta_thumb);
        
    }

    if ( 
$datos[2]==){
        
        if (
function_exists("imagecreatefromgif")){
                
            
$img imagecreatefromgif($fichero_ruta);
            
$img_thumb imagecreatefromgif($fichero_ruta_thumb);

                
        } else {
            
            
unlink ($fichero_ruta);
            
unlink ($fichero_ruta_thumb);

        }
    }
            
    if (
$datos[2]==2){
            
        if (
function_exists("imagecreatefromjpeg")){
                    
            
$img imagecreatefromjpeg($fichero_ruta);
            
$img_thumb imagecreatefromjpeg($fichero_ruta_thumb);
        
        } else {
        
            
unlink ($fichero_ruta);
            
unlink ($fichero_ruta_thumb);
        
        }
    }
    
    if (
$datos[2]==3){
        
        if (
function_exists("imagecreatefrompng")){
        
$img imagecreatefrompng($fichero_ruta);
        
$img_thumb imagecreatefrompng($fichero_ruta_thumb);
        
        } else {
            
            
unlink ($fichero_ruta);
            
unlink ($fichero_ruta_thumb);
                    
        }
            
    }

    
$ancho_orig $datos[0];
    
$alto_orig $datos[1];
        
    if (
$ancho_orig $alto_orig){
        
        
$ancho_dest $redx;
        
$alto_dest = ($ancho_dest/$ancho_orig)*$alto_orig;
        
        
$ancho_dest_thumb $redx_thumb;
        
$alto_dest_thumb = ($ancho_dest_thumb/$ancho_orig)*$alto_orig;
        
    }else{
        
        
$alto_dest $redy;
        
$ancho_dest = ($alto_dest/$alto_orig)*$ancho_orig;
        
        
$alto_dest_thumb $redy_thumb;
        
$ancho_dest_thumb = ($alto_dest_thumb/$alto_orig)*$ancho_orig;
        
    }
        
    
$img2 = @imagecreatetruecolor($ancho_dest,$alto_dest) or $img2=imagecreate($ancho_dest,$alto_dest);
    
$img2_thumb = @imagecreatetruecolor($ancho_dest_thumb,$alto_dest_thumb) or $img2_thumb=imagecreate($ancho_dest_thumb,$alto_dest_thumb);
    @
imagecopyresampled($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig) or imagecopyresized($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig);
    @
imagecopyresampled($img2_thumb,$img_thumb,0,0,0,0,$ancho_dest_thumb,$alto_dest_thumb,$ancho_orig,$alto_orig) or imagecopyresized($img2_thumb,$img_thumb,0,0,0,0,$ancho_dest_thumb,$alto_dest_thumb,$ancho_orig,$alto_orig);
    if (
$datos[2]==1){

        if (
function_exists("imagegif")){

            
imagegif($img2$fichero_ruta);
            
imagegif($img2_thumb$fichero_ruta_thumb);
                
        }else{
            
            
unlink ($fichero_ruta);
            
unlink ($fichero_ruta_thumb);
            
        }
    }
        
    if (
$datos[2]==2){
            
        if (
function_exists("imagejpeg")){
                    
            
imagejpeg($img2$fichero_ruta);
            
imagejpeg($img2_thumb$fichero_ruta_thumb);
                
        }else{
                
            
unlink ($fichero_ruta);
            
unlink ($fichero_ruta_thumb);
                
        }
    }
            
    if (
$datos[2]==3){
                
        if (
function_exists("imagepng")){
        
            
imagepng($imgRed2$fichero_ruta);
            
imagepng($imgRed2_thumb$fichero_ruta_thumb);
                
        }else{

            
unlink ($fichero_ruta);
            
unlink ($fichero_ruta_thumb);

        }
    }

    
clearstatcache();


    echo 
"<img src=\"$fichero_ruta\" alt=\"$fichero_ruta\" /><br />\n";
    echo 
"<br>";
    echo 
"<img src=\"$fichero_ruta_thumb\" alt=\"$fichero_ruta_thumb\" /><br />\n";
        




Urge una ayudita..

GRACIAS quienquiera q se preste
  #2 (permalink)  
Antiguo 18/05/2006, 00:44
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
buenas,
lo único q veo asi por encima es la ruta donde guardas las imagenes

Código PHP:
$fichero_ruta"fotosConciertos/" $imgarchivo
$fichero_ruta_thumb"fotosConciertosT/tn_" $imgarchivo
podrias probar de poner la ruta completa en donde se guardar la imagen.

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 19/05/2006, 10:06
Avatar de 100
100
 
Fecha de Ingreso: mayo-2006
Ubicación: Ferror
Mensajes: 3
Antigüedad: 17 años, 11 meses
Puntos: 0
Pues cosa de las rutas absolutas no era. Pero GRACIAS de todas formas

Le hice caso a tu amigo Cervantes y repasé la documentación sobre la librería GD de PHP
( ..esos libros de caballería, pardiez!! )

y bueno estaba haciendo unas cuantas desbarradas..

Pero bueno ahora quedó bonito y funcionando

Procedo y aki lo chanto corregido y un poco ampliado, en esta gran base de conocimiento para quien le pueda servir ( supongo q podría estar mejor ):


formulario en html para subir imagen :
subirImagenForm.html
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Formulario Subir Imagen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<form action="subirImagen.php" method="POST" enctype="multipart/form-data">

  <p>Imagen: 
    <input type="file" name="imgarchivo">

    <br>
    <br>
    <input type="submit" name="submit" value="submit"> 
</form>

</body>
</html> 

archivo php q recoge/checkea/copia a dir 1/redim/copia a fichero 2/redim a thumbnail :
subirImagen.php

Código PHP:
/*
Script original de NoSetup.tk

Crear 2 carpetas dentro de la ruta de servidor donde se encuentre el archivo de este script
p. ej.: fotosConciertos > para las imagenes y fotosConciertosTN > para las imagenes de previsualización
*/

function copiarRedImagen (){

    
$extensiones = array('.jpg','.jpeg','.gif','.png');
    
$anchura_max 1600;
    
$altura_max 1200;
    
$tamano_max=1024000;

    
$imgarchivo $_FILES['imgarchivo']['name'];
    
$imgarchivo strtolower$imgarchivo );
    
$temporal $_FILES['imgarchivo']['tmp_name'];
    
$fichero_ruta"fotosConciertos/" $imgarchivo;
    
$fichero_ruta_thumb"fotosConciertosTN/tn_" $imgarchivo;
    
    if (!
is_uploaded_file ($temporal)){
     
        
error ("<p>No ha seleccionado el archivo</p>");

    }    
    
    if ( 
file_exists ($fichero_ruta) ){
        
        
error ("<p>La imagen ya existe</p>");

    };
    
    
move_uploaded_file($temporal,$fichero_ruta);
    
$datos getimagesize ($fichero_ruta);
    
$ext strrchr($fichero_ruta,".");
    
$ext_correcta="no";

    foreach (
$extensiones as $extension){
        
        if (
$ext == $extension){
            
            
$ext_correcta="si";
        
        }
    }
    
    if (
$ext_correcta=="no"){
        
        
unlink ($fichero_ruta);
        
error ("<p>Tipo de archivo de imagen no válido [ válidos : gif, png, jpg o jpeg ]</p>");
        
    }
    
    
$tamano=filesize($fichero_ruta);
        
    if (
$tamano>$tamano_max){
        
        
unlink ($fichero_ruta);
        
error ("<p>Imagen demasiado pesada</p>");
            
    }
        
    if ((
$anchura_max!=0) && ($datos[0]>$anchura_max)){
        
        
unlink ($fichero_ruta);
        
error ("<p>Anchura de la imagen demasiado grande</p>");
        
    }

    if ( 
$datos[2]==){
        
        if (
function_exists("imagecreatefromgif")){
                
            
$img imagecreatefromgif($fichero_ruta);

                
        } else {
            
            
unlink ($fichero_ruta);
            
error ("<p>Función [ imagecreatefromgif ] no es soportada por el servidor</p>");

        }
    }
            
    if (
$datos[2]==2){
            
        if (
function_exists("imagecreatefromjpeg")){
                    
            
$img imagecreatefromjpeg($fichero_ruta);
        
        } else {
        
            
unlink ($fichero_ruta);
            
error ("<p>Función [ imagecreatefromjpeg ] no es soportada por el servidor</p>");
        
        }
    }
    
    if (
$datos[2]==3){
        
        if (
function_exists("imagecreatefrompng")){
        
            
$img imagecreatefrompng($fichero_ruta);

        
        } else {
            
            
unlink ($fichero_ruta);
            
error ("<p>Función [ imagecreatefrompng ] no es soportada por el servidor</p>");
                    
        }
            
    }
    
    
$ancho_orig $datos[0];
    
$alto_orig $datos[1];
        
    if (
$ancho_orig $alto_orig){
        
        
$ancho_dest 600;
        
$alto_dest = ($ancho_dest/$ancho_orig)*$alto_orig;
        
    }else{
        
        
$alto_dest 450;
        
$ancho_dest = ($alto_dest/$alto_orig)*$ancho_orig;
        
    }
    
    
$img2 = @imagecreatetruecolor($ancho_dest,$alto_dest) or $img2=imagecreate($ancho_dest,$alto_dest);
    @
imagecopyresampled($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig) or imagecopyresized($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig);
    
imagejpeg($img2$fichero_ruta);
    
$datos getimagesize ($fichero_ruta);
    
$img imagecreatefromjpeg($fichero_ruta);
    
    
$ancho_orig $datos[0];
    
$alto_orig $datos[1];
        
    if (
$ancho_orig $alto_orig){
        
        
$ancho_dest 100;
        
$alto_dest = ($ancho_dest/$ancho_orig)*$alto_orig;
        
    }else{
        
        
$alto_dest 75;
        
$ancho_dest = ($alto_dest/$alto_orig)*$ancho_orig;
        
    }
    
    
$img2 = @imagecreatetruecolor($ancho_dest,$alto_dest) or $img2=imagecreate($ancho_dest,$alto_dest);
    @
imagecopyresampled($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig) or imagecopyresized($img2,$img,0,0,0,0,$ancho_dest,$alto_dest,$ancho_orig,$alto_orig);
    
imagejpeg($img2$fichero_ruta_thumb);
    
    
clearstatcache();

    echo 
"<img src=\"$fichero_ruta\" alt=\"$fichero_ruta\" /><br />\n";
    echo 
"<br>";
    echo 
"<img src=\"$fichero_ruta_thumb\" alt=\"$fichero_ruta_thumb\" /><br />\n";
    
}

function 
error($mensaje){
    
    echo 
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
    echo 
"<html>\n";
    echo 
"<head>\n";
    echo 
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
    echo 
"<title>Subir-Copiar-Redimensionar imagen y crear una imagen de previsualización. Script a partir del original de NoSetup.tk</title>\n";
    echo 
"</head>\n";
    echo 
"<body>\n";
    echo 
$mensaje;
    echo 
"</body>\n";
    echo 
"</html>\n";
    die();
}

if (
$_POST['submit']){
    

    
copiarRedImagen ();

    
    
}else{
    
    
error ("<p>No ha llegado ninguna imagen desde el formulario</p>");
    
}; 

y eso fué todo

!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:11.