Foros del Web » Programando para Internet » PHP »

Como subir imagenes a directorio y guardar ruta en Base de Da

Estas en el tema de Como subir imagenes a directorio y guardar ruta en Base de Da en el foro de PHP en Foros del Web. Hola buenas noches. Ahora que más o menos ya tengo la página web enfilada me toca meterme con este tema peliagudo. Se que se ha ...
  #1 (permalink)  
Antiguo 22/07/2009, 17:34
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Como subir imagenes a directorio y guardar ruta en Base de Da

Hola buenas noches.

Ahora que más o menos ya tengo la página web enfilada me toca meterme con este tema peliagudo.

Se que se ha tratado mucho en los foros, pero llevo tooooodo el santo dia de hoy intentando enterarme de como funciona y en estos momentos tengo más jaleo en la cabeza que ideas buenas.

Por lo que he leido, lo que me gustaría hacer sería:

Subir fotos a un directorio concreto
De una foto hacer dos, una más grande y otra más pequeña 640x480 - 160x120
La ruta de dichas fotos que se quede en mi base de datos Mysql por lo que creo necesitare dos campos por cada foto.

La página para subir las fotos esta en una zona restringida de la página y solo una persona tendra acceso a ese panel de control.

Osea que la seguridad en un principio tampoco me importa mucho, ese es un tema que quedara para más adelante.

Alguien me puede ayudar en la ardua tarea que tengo por delante?

O si alguna persona conoce algún script facil de instalar y manejar mejor que mejor.

Muchas gracias.
  #2 (permalink)  
Antiguo 22/07/2009, 18:50
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: Como subir imagenes a directorio y guardar ruta en Base de Da

Hola:

Tengo un código que te puede servir:

Código PHP:
<?php
$archivo 
getimagesize($_FILES['foto']['tmp_name']);  
switch (
$archivo[2]) { 
  case 
1
    
$imagen imagecreatefromgif($_FILES['foto']['tmp_name']); break; 
  case 
2
    
$imagen imagecreatefromjpeg($_FILES['foto']['tmp_name']); break; 
  case 
3
    
$imagen imagecreatefrompng($_FILES['foto']['tmp_name']); break; 
  
// etcétera //  
  
}
 
 if(!
$imagen)
    die(
'No se pudo crear la imagen.');  

$original $imagen
$original_w imagesx($original); 
$original_h imagesy($original); 

$max 125;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS 

if($original_w>$original_h) { 
    
$muestra_w $max
    
$muestra_h intval(($original_h/$original_w)*$max); 
    } else { 
    
$muestra_w intval(($original_w/$original_h)*$max); 
    
$muestra_h $max
    } 

$muestra imagecreatetruecolor($muestra_w,$muestra_h);  

$muestra imagecreatetruecolor($muestra_w,$muestra_h);  

imagecopyresampled($muestra,$original,0,0,0,0$muestra_w,$muestra_h,$original_w,$original_h); 
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya 

 // me verifica haya sido cargado el archivo  
        
$ruta_destino "/fotos/"
        
$namefinal strtolower(str_replace(' ''-'$_FILES['foto']['name']));

        
// Quitamos la extension
        
list($namefinal$extension) = explode('.'$namefinal);
        
// Agregamos la extension .jpg
$namefinal mysql_insert_id();

// Guardas el archivo:
$uploadfile$ruta_destino $namefinal '.jpg';
//quito los espacios entre las palabtas del nombre si los hay
if(imagejpeg($muestra,$uploadfile,'100')) 

// se coloca en su lugar final    
// Se guardo correctamente    
// Si aun crees necesario guardar el nombre con ruta en la base de datos:    
$query "UPDATE fotos SET id_foto = '$namefinal' WHERE id_producto = '$namefinal'";    
mysql_query($query) or die(mysql_error());
}
?>
Espero que te sirva.
  #3 (permalink)  
Antiguo 23/07/2009, 10:25
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Como subir imagenes a directorio y guardar ruta en Base de Da

Hola buenas tardes.

Gracias por responder.

Ahora me surgem varias dudas:

La primera he creado una página subir.html
Código PHP:
<HTML>
<HEAD>
<TITLE>Subir Fotos</TITLE>
</HEAD>
<BODY>
<?php
if (isset($_GET['proceso'])){
echo 
$_GET['proceso']."<br>";
}
?>
<FORM enctype="multipart/form-data" method="post" action="subir.php">
Archivo: <INPUT type="file" name="archivo" size="30">
<INPUT type="submit" name="submit" value="Subir archivo">
</FORM>
</BODY>
</HTML>
La segunda que a la hora de cargar la foto y enviar me da este error

Código PHP:
$original_h) { $muestra_w $max$muestra_h intval(($original_h/$original_w)*$max); } else { $muestra_w intval(($original_w/$original_h)*$max); $muestra_h $max; } $muestra imagecreatetruecolor($muestra_w,$muestra_h); $muestra imagecreatetruecolor($muestra_w,$muestra_h); imagecopyresampled($muestra,$original,0,0,0,0$muestra_w,$muestra_h,$original_w,$original_h); imagedestroy($original); // aqui destruyo el original, pues no hace falta ya // me verifica haya sido cargado el archivo $ruta_destino = "/fotos/"; $namefinal = strtolower(str_replace(' ', '-', $_FILES['foto']['name'])); // Quitamos la extension list($namefinal, $extension) = explode('.', $namefinal); // Agregamos la extension .jpg $namefinal = mysql_insert_id(); // Guardas el archivo: $uploadfile= $ruta_destino . $namefinal . '.jpg'; //quito los espacios entre las palabtas del nombre si los hay if(imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final // Se guardo correctamente // Si aun crees necesario guardar el nombre con ruta en la base de datos: //$query = "UPDATE fotos SET foto1 = '$namefinal' WHERE inmuebles = '$namefinal'"; //mysql_query($query) or die(mysql_error()); } ?> 
Por lo que veo a la hora de comprobar if($original_w > $original_h) es cuando da el fallo.

Alguna solución?

Gracias.
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 20:00.