Foros del Web » Programando para Internet » PHP »

redimensionar imagenes. Ayuda urgente, por favor

Estas en el tema de redimensionar imagenes. Ayuda urgente, por favor en el foro de PHP en Foros del Web. este es mi código y no funciona. Lo que pasa es qeu no sube nada, pero la ruta está bien, todo está perfecto! ... pero ...
  #1 (permalink)  
Antiguo 13/03/2008, 04:08
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Exclamación redimensionar imagenes. Ayuda urgente, por favor

este es mi código y no funciona. Lo que pasa es qeu no sube nada, pero la ruta está bien, todo está perfecto! ... pero no hay nada.

Antes ponia ftp_put, pero me dijeron que este sistema subia también el archivo.

el caso es que cuadno veo el servidor, no hay nada, y tampoco lo encuentro en ningún otro sitio. Ayuda por favor!

Código PHP:
        $foto_grande "html/fotos/".$archivo;
        
$id_ftp ConectarFTP();
        if (
$id_ftp != false){

            
$ratio $datos[0]/$datos[1];
            
$alto floor(100/$ratio);

            
$redimensionada imagecreate(100,$alto);
            
$source imagecreatefromjpeg($temp);
            if (!
imagecopyresized ($redimensionada$source0000100$alto$datos[0], $datos[1]){$fallido true;}
            else {
                
ftp_chdir($id_ftp"html/fotos/");
                
                
imagejpeg($redimensionada,$nombre_archivo,100);
                
imagedestroy($redimensionada);
                
imagedestroy($source);
            }
        }
        else{
            
$fallido true;
        }
        
ftp_close($id_ftp); 
__________________
Darkgaze
  #2 (permalink)  
Antiguo 13/03/2008, 06:02
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: redimensionar imagenes. Ayuda urgente, por favor

Para empezar, donde toman valor las variables $temp y $nombre_archivo? En vez de $temp no tendria que ir $foto_grande?
Luego yo grabaria la imagen redimensionada localmente con imagejpeg, luego subiria esta imagen con el ftp, y borraria la imagen que grabé localmente si no la necesito.

-ronnieb
  #3 (permalink)  
Antiguo 13/03/2008, 06:19
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Exclamación Re: redimensionar imagenes. Ayuda urgente, por favor

Efectivamente faltaba codigo.
ahora queda así:

Código PHP:
if(!empty($_FILES["archivo"])){
        
$temp $_FILES["archivo"]["tmp_name"];
        
//COMPROBAR QUE TIENE EL FORMATO ADECUADO DE NOMBRE Y .JPG
        
$datos getimagesize($temp);

        
//GENERAMOS LOS NOMBRES DEFINITIVOS
        
$archivo $id_casa '_' $id_foto '.jpg';
        
$id_ftp ConectarFTP();
        if (
$id_ftp != false){

            
$ratio $datos[0]/$datos[1];
            
$alto floor(100/$ratio);

            
$redimensionada imagecreate(100,$alto);
            
$source imagecreatefromjpeg($temp);
            if (!
$source){ print "mal"; exit;}
            if (!
imagecopyresized ($redimensionada$source0000100$alto$datos[0], $datos[1]))
            {
$fallido true;}
            else {
                
ftp_chdir($id_ftp"html/casas-rurales-avila/fotos/");
                
imagejpeg($redimensionada,$archivo,100);
                
imagedestroy($redimensionada);
                
imagedestroy($source);
            }
        }
        else{
            
$fallido true;
        }
        
ftp_close($id_ftp); 
y lo de imagen grande lo he quitado
__________________
Darkgaze
  #4 (permalink)  
Antiguo 13/03/2008, 14:01
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: redimensionar imagenes. Ayuda urgente, por favor

Por favor, alguien podriá decirme qué ocurre aquí? está bien hecho!! pero aún así no sube nada...

a falta del ftp_put... qué es lo que hay mal?

lo ahce todo bien! funcionan todas las funciones... pero no hay nada en el server. La url está bien? no se...
__________________
Darkgaze
  #5 (permalink)  
Antiguo 14/03/2008, 03:40
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: redimensionar imagenes. Ayuda urgente, por favor

Decidme al menos si es esta la forma de hacerlo, por favor!

Si no contestáis (cosa que es raro , en este foro) es que lo véis y no encontráis ningún error...

Qué es lo que consigue que el archivo se cargue en el servidor? imagejpg??. Es equivalente a hacer un ftp_put?
__________________
Darkgaze
  #6 (permalink)  
Antiguo 14/03/2008, 03:52
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: redimensionar imagenes. Ayuda urgente, por favor

igual deberias subir de esta forma el archivo.


if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
  #7 (permalink)  
Antiguo 14/03/2008, 03:54
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: redimensionar imagenes. Ayuda urgente, por favor

mira, yo uso este codigo para subier archivos al server, a ver si te sirve algo del script.



Código PHP:

if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../carpeta/carpeta/";
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
  #8 (permalink)  
Antiguo 17/03/2008, 11:32
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: redimensionar imagenes. Ayuda urgente, por favor

Si la imagen la estás copiando en la misma cuenta del servidor, no hace falta usar ftp.

Le pondria la ruta completa a la variable $archivo, asi:

Código PHP:
$archivo "html/casas-rurales-avila/fotos/".$id_casa '_' $id_foto '.jpg'
y luego imagejpeg directo lo copia ahi.

Si usas FTP porque estás copiando la imagen a otro servidor o a otra cuenta, entonces grabaría la imagen localmente en la cuenta que ejecuta este script php, en un archivo temporal, y luego copiaría ese archivo con ftp. No trataría de que imagejpeg directo la genere en el otro servidor.

-ronnieb
  #9 (permalink)  
Antiguo 17/03/2008, 11:57
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: redimensionar imagenes. Ayuda urgente, por favor

gracias a todos.

al final lo descubrí con el tiempo viendo y haciendo pruebas... no hay que usar ftp!!!... que idiota he sido U_U

gracias de neuvo
__________________
Darkgaze
  #10 (permalink)  
Antiguo 17/03/2008, 12:09
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: redimensionar imagenes. Ayuda urgente, por favor

Pues, si lo has conseguido ,darkgaze y si no es molestia, podrias publicar el codigo que has hecho por si otra persona tiene el mismo problema que tu, tambien pueda saber cual fue la solucion que le diste al script y como redimensionas las imagenes

Un saludo y gracias.
  #11 (permalink)  
Antiguo 17/03/2008, 16:16
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: redimensionar imagenes. Ayuda urgente, por favor

Claro hombre. aquí esta.

Es lioso quizá, pero vamos, se ve como genera de una imagen varias versiones. Una grande, otra pequeña. Si la imagen tiene de ancho menos de 600px, la deja como está.


Código PHP:
$temp $_FILES['archivo'.$id_foto]["tmp_name"];
        
$datos getimagesize($temp);
        
        
//COMPROBAR QUE TIENE EL FORMATO ADECUADO DE NOMBRE Y .JPG
        
$permitido = array ('image/gif''image/jpeg''image/jpg''image/pjpeg');
        if (!
in_array($_FILES['archivo'.$id_foto]['type'], $permitido)){
            
$_FILES = array();
            
header("Location: panel_fotos.php?id=".$id_casa."&fallo_jpg");
            exit;
        }

        
//COMPROBAR QUE NO SE PASA DEL TAMAÑO
        
if ( (filesize($temp)/1024) > 2024 ){ //2 megas, que es lo que normalmente ocupa una foto normal
            
$_FILES = array();
            
header("Location: panel_fotos.php?id=".$id_casa."&fallo_tam");
            exit;
        }
        
        
//GENERAMOS LA VISTA GRANDE
        
$archivo "fotos/".$id_casa '_' $id_foto '.jpg';
        
$ratio $datos[0]/$datos[1];
        if (
$datos[0] > 600){
            
$alto floor(600/$ratio);

            
$redimensionada imagecreatetruecolor(600,$alto);
            
$source imagecreatefromjpeg($temp);
            if (!
imagecopyresized ($redimensionada$source,0,0,0,0,600,$alto,$datos[0],$datos[1]) )
                {
$fallido true;}
            else {
                
imagejpeg($redimensionada,$archivo,80);
                
imagedestroy($redimensionada);
                
imagedestroy($source);
            }
        }
        else {
            
$alto $datos[1];
            
$ancho $datos[0];

            
$redimensionada imagecreatetruecolor($ancho,$alto);
            
$source imagecreatefromjpeg($temp);
            if (!
imagecopyresized($redimensionada$source,0,0,0,0,$ancho,$alto,$datos[0],$datos[1]) )
                {
$fallido true;}
            else {
                
imagejpeg($redimensionada,$archivo,80);
                
imagedestroy($redimensionada);
                
imagedestroy($source);
            }
        }

        
//GENERAMOS LA VISTA PREVIA
        
$archivo "fotos/pre/".$id_casa '_' $id_foto '.jpg';
        
$ratio $datos[0]/$datos[1];
        
$alto floor(180/$ratio);

        
$redimensionada imagecreatetruecolor(180,$alto);
        
$source imagecreatefromjpeg($temp);
        if (!
imagecopyresized ($redimensionada$source,0,0,0,0,180,$alto,$datos[0],$datos[1]) )
             {
$fallido true;}
        else {
            
imagejpeg($redimensionada,$archivo,80);
            
imagedestroy($redimensionada);
            
imagedestroy($source);
        } 
__________________
Darkgaze
  #12 (permalink)  
Antiguo 17/03/2008, 16:31
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: redimensionar imagenes. Ayuda urgente, por favor

Gracias, darkgaze.

Muy bueno por tu parte.
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 00:51.