Foros del Web » Programando para Internet » PHP »

Recuperar imagenes de archivo y mostrarlas con php

Estas en el tema de Recuperar imagenes de archivo y mostrarlas con php en el foro de PHP en Foros del Web. Hola amigos del foro, quiero hacerles una consulta: ya logre hacer (gracias al valioso aporte de la gente del foro) que mediante un simple formulario ...
  #1 (permalink)  
Antiguo 28/02/2010, 17:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Recuperar imagenes de archivo y mostrarlas con php

Hola amigos del foro, quiero hacerles una consulta:
ya logre hacer (gracias al valioso aporte de la gente del foro) que mediante un simple formulario el usuario busque y suba imagenes a una carpeta determinada en mi servidor la cual se llama IMAGENES
Lo que necesito ahora, es saber como hacer para recuperar las imagenes de esa carpeta en mi servidor y mostrarlas en una pagina web (en el lugar de la pagina que yo desee)
Basicamente la idea es que cada usuario pueda subir una foto a su perfil y esta se muestre en la pagina, para ser mas grafico.
Si alguien me puede ayudar para saber como hacer, se los agradeceria un monton.
Saludos, Ariel
  #2 (permalink)  
Antiguo 28/02/2010, 17:39
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

bueno. es sencillo. si tu estas haciendo con base de datos con una tabla usuarios y estas trabajando con sessiones, solo tienes que mostrar en tu consulta sql.

Código PHP:
Ver original
  1. $sql = "SELECT * FROM usuario WHERE idusuario = '".$_SESSION['usuario']."'";
  2. $rpta = mysql_query($sql) or die(mysql_error());
  3. $row_usuario = mysql_fetch_array($rpta)
  4.  
  5. //mostrar el nombre del usuario y su foto.
  6.  
  7. echo "hola ".$row_usuario['campo'];
  8. echo "<br/>";
  9. echo "<img src = \"carpeta_fotos/".$row_usuario['campo']."\" />";

esa seria tu respuesta. como recien estas empezando a desarrollar aplicaciones web y no tienes idea que son las sessiones, te recomiendo que repases el tema.

saludos.
  #3 (permalink)  
Antiguo 28/02/2010, 17:39
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

y otra consulta tambien, como hago para controlar el tamaño de las imagenes que el usuario sube, o sea, predeterminar un tamaño para las las imagenes ejemplo 200px x 200px
  #4 (permalink)  
Antiguo 28/02/2010, 17:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

como estas, antes que nada mil gracias por la respuesta y el codigo.
bueno te comento, no soy un experto pero tampoco recien empiezo con php, por lo que tengo en claro lo que son las sesiones, pero relacionado al tema.
hasta ahora lo que logre hacer es subir una imagen a una carpeta en mi servidor, mediante este codigo:
<?php
extract($_POST);

if(isset( $_FILES["file"]["name"])){
$_FILES["file"]["name"] = str_replace(" ","_",$_FILES["file"]["name"]);
if(move_uploaded_file($_FILES["file"]["tmp_name"], "IMAGENES/".$_FILES["file"]["name"]))//IMAGENES es el nombre de la carpeta donde se almacenan
echo "subido";
else
echo "No subido";
}
?>
--------------------------
entonces lo que me faltaria hacer es guardar la ruta de la imagen en la db (lo cual no tengo idea como se hace)
y luego mostrar la imagen en la pagina, por ejemplo al lado del nombre de usuario
y por otro lado venia la consulta, de como hacer para controlar el tamaño de las imagenes que el usuario sube
  #5 (permalink)  
Antiguo 28/02/2010, 17:56
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

respondiendo a tu primera pregunta, en tu campo de tu tabla solo tienes que guardar la ruta donde se almacena las imagenes.

antes de eso, en tu codigo que colocaste.

Código PHP:
Ver original
  1. $_FILES["file"]["name"] = str_replace(" ","_",$_FILES["file"]["name"]);

porque lo colocas de esa manera. esta bien lo que hiciste, pero no seria mejor que almaceras en una variable y dentro de ella colocarias el nombre de tu archivo.

seria de esta manera.

Código PHP:
Ver original
  1. if(isset( $_FILES["file"]["name"])){
  2. $nombre_archivo = str_replace(" ","_",$_FILES["file"]["name"]);
  3. $path = "IMAGENES/";
  4. $ruta_imagen = $path.$nombre_archivo; //declaro una variable $ruta_imagen y la almaceno concatenandolo con las 2 variables $path y $nombre_archivo
  5.  
  6. if(move_uploaded_file($_FILES["file"]["tmp_name"], $ruta_imagen))//IMAGENES es el nombre de la carpeta donde se almacenan
  7. $sql_insertar = "insert into usuarios(nombre_usuario,ruta_imagen)values('$nombre_usuario','$ruta_imagen')";
  8. mysql_query($sql_insertar) or die(mysql_error());
  9. echo "subido";
  10. else
  11. echo "No subido";
  12. }

y respondiendo a tu segunda pregunta, alli tendrias que utilizar la funcion getimagesize para que obtengas el tamaño de la imagen.

Código PHP:
Ver original
  1. $nombre_archivo=$_FILES['imagen']['name'];
  2.  
  3. $size=getimagesize($nombre_archivo);//obtengo el ancho de la imagen
  4.        
  5. $width_image=$size[0]; //ancho de la imagen.
  6. $height_image=$size[1]; //alto de la imagen.
  7.  
  8. if($width_image<=200 and $height_image<=200){//tamaño de la imagen
  9. if(strtoupper($test[1])=="JPG" || strtoupper($test[1])=="JPEG" || strtoupper($test[1])=="GIF"){
  10. move_uploaded_file($_FILES['imagen']['tmp_name'],$path.$nombre_archivo);
  11. }else{ 
  12. echo "imagen no permitido.";       
  13. }
  14.  
  15. }else{
  16. echo "tamaño no permitido.";
  17. }

saludos.

Última edición por esaenz22; 28/02/2010 a las 18:10 Razón: correccion.
  #6 (permalink)  
Antiguo 28/02/2010, 18:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
y como hago para guardar la ruta de la imagen en la db y luego recuperarla para poder mostrarla en la pagina

alli lo he escrito. leelo.

saludos.

el campo que guarda la ruta de la imagen en la db, debe tener alguna propiedad en particular?

no observe, quiza me equivoco, como puedo hacer para recuperar la ruta de la imagen de la db y mostrarla en la pagina

ah perdon, lo vi alli arriba voy a probarlo a ver si funciona

mira te paso el codigo que use para intentar visualizar la imagen, pero me sale una crucecita roja (o sea no se visualiza):

<?php
session_start();
$_SESSION['username'];

$db = mysql_connect("host", "base", "password");
mysql_select_db("imagenes_1");


$consulta= "select * from usuarios where usuario= '".$_SESSION['username']."'";
$result= mysql_query($consulta);
$row= mysql_fetch_array($result);

echo "<img src= \IMAGENES/".$row['imagen']."\" />"; /*imagen es el nombre del campo de la base donde se almacena la ruta*/


?>

Última edición por GatorV; 04/03/2010 a las 10:39
  #7 (permalink)  
Antiguo 28/02/2010, 22:09
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

un consejo. no envies muchas respuestas a tu tema. porque te digo eso. los moderadores pueden enviarte una notificacion y mas adelante si haces eso en cada tema te publican, te cancelan tu cuenta.

respondere a tus preguntas.

1. el campo que guarda la ruta de la imagen en la db, debe tener alguna propiedad en particular ?.

rpta: bueno. en este caso como estas guardando la ruta con la imagen, colocale a tu campo varchar(100) o varchar(255).

2. como puedo hacer para recuperar la ruta de la imagen de la db y mostrarla en la pagina ?.

rpta. solo muestras en la imagen el campo donde esta almacenada la ruta y el nombre del archivo (en este caso, la imagen).

Código PHP:
Ver original
  1. echo "<img src = ".$row_usuario['imagen']." border = \"0\"/>";

y respondiendo a lo ultimo, seria de esta manera.

Código PHP:
Ver original
  1.  
  2. echo $_SESSION['username'];
  3.  
  4. $db = mysql_connect("host", "base", "password");
  5. mysql_select_db("imagenes_1");
  6.  
  7. $consulta= "select * from usuarios where usuario= '".$_SESSION['username']."'";
  8. $result= mysql_query($consulta);
  9. $row= mysql_fetch_array($result);
  10.  
  11. echo "<img src = ".$row_usuario['imagen']." border = \"0\"/>"; /*imagen es el nombre del campo de la base donde se almacena la ruta*/

saludos.
  #8 (permalink)  
Antiguo 01/03/2010, 18:21
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

hola, disculpas por no responder antes, muchas gracias x el codigo, voy a probarlo a ver si logro hacerlo funcionar y te cuento ke onda.
saludos cordiales.
ariel
  #9 (permalink)  
Antiguo 02/03/2010, 01:24
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

Yo te aconsejaría que si la imagen excede el limite de tamaño, en vez de no permitir que sea cargada, deberías redimesionarla para que se adapte al tamaño correcto, seria mucho mas practico y cómodo tanto para el usuario como para ti, ademas de que es un trabajo sumamente sencillo.

Saludos
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza
  #10 (permalink)  
Antiguo 02/03/2010, 11:24
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

claro es una buena opcion, y como podria hacero
  #11 (permalink)  
Antiguo 02/03/2010, 11:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

hola como estas, antes que nada, mil gracias por toda la ayuda que me brindas y por la paciencia de siempre.
bueno te cuento, que logre visualizar la imagen, pero haciendo una pequeña modificación en el codigo que me pasaste, y de paso copio aqui el codigo por si hay alguien que desee hacer lo mismo y no sepa como hacerlo, ahora me faltaria el tema de redimensionar la imagen a la medida que yo quiero, que todavia no se como hacerlo. paso el codigo que utilice:
---------------------------------------------------------------------------------------

<?php
session_start();
$_SESSION['username'];

$db = mysql_connect("host", "usuario", "password");
mysql_select_db("base");


$consulta= "select * from usuarios where usuario= '".$_SESSION['username']."'";//usuarios es la tabla de la base
$result= mysql_query($consulta);
$num= mysql_num_rows($result);

for ($i=0;$i<$num;$i++)
{
$row= mysql_fetch_array($result);
echo "<img src = ".($row['imagen'])." border = \"0\"/>";//imagen es el campo donde se guarda la ruta a la imagen
}

?>
espero les pueda ser de utilidad.
saludos cordiales.
ariel
Cita:
Iniciado por esaenz22 Ver Mensaje
un consejo. no envies muchas respuestas a tu tema. porque te digo eso. los moderadores pueden enviarte una notificacion y mas adelante si haces eso en cada tema te publican, te cancelan tu cuenta.

respondere a tus preguntas.

1. el campo que guarda la ruta de la imagen en la db, debe tener alguna propiedad en particular ?.

rpta: bueno. en este caso como estas guardando la ruta con la imagen, colocale a tu campo varchar(100) o varchar(255).

2. como puedo hacer para recuperar la ruta de la imagen de la db y mostrarla en la pagina ?.

rpta. solo muestras en la imagen el campo donde esta almacenada la ruta y el nombre del archivo (en este caso, la imagen).

Código PHP:
Ver original
  1. echo "<img src = ".$row_usuario['imagen']." border = \"0\"/>";

y respondiendo a lo ultimo, seria de esta manera.

Código PHP:
Ver original
  1.  
  2. echo $_SESSION['username'];
  3.  
  4. $db = mysql_connect("host", "base", "password");
  5. mysql_select_db("imagenes_1");
  6.  
  7. $consulta= "select * from usuarios where usuario= '".$_SESSION['username']."'";
  8. $result= mysql_query($consulta);
  9. $row= mysql_fetch_array($result);
  10.  
  11. echo "<img src = ".$row_usuario['imagen']." border = \"0\"/>"; /*imagen es el nombre del campo de la base donde se almacena la ruta*/

saludos.
  #12 (permalink)  
Antiguo 02/03/2010, 17:56
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

APORTE: Función que redimensiona imagenes

saludos.
  #13 (permalink)  
Antiguo 02/03/2010, 21:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

sabes que no logre hacer que la funcion del link me funcione, a ver que estoy haciendo mal:
-----------------------------------------------------


function redimensionar($ruta,$ancho,$alto){


$dim = getimagesize($ruta);
if($dim[1]){

$cociente = $dim[0] / $dim[1];
}
if($alto){
$coc_max = $ancho / $alto;
}

if(($dim[0]<=$ancho)&&($dim[1]<=$alto)){

$ancho = $dim[0];
$alto = $dim[1];
}else{
if($cociente>=$coc_max){
$alto = $ancho / $cociente;
}else{
$ancho = $alto * $cociente;
}
}
echo "<img src='$ruta' width='$ancho' height='$alto'>";

}
?>
-----------------------------------------------------------------------
en mi caso por ejemplo quiero que la imagen se redimensione a 200px x 200px
como deberia hacer? en que parte de la funcion debo establecer el tamaño que yo deseo?
muchas gracias y saludos
ariel
  #14 (permalink)  
Antiguo 02/03/2010, 21:45
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

Para hacer la redimension de las imagenes es muy sencillo, solo necesitas aplicarle una funcion pasandole los parametros necesarios y ya. Te explicare algo sencillo, la funcion solo buscara en tu directorio la imagen segun la ruta que le pases, la copiara y creara una nueva con los tamaños que le asignes. La funcion seria una como esta:

Código PHP:
<?php 

function cambiartam($nombre,$archivo,$ancho,$alto
    { 
    
$verificar explode('.',$nombre);
    
$tmp $verificar[1]; 

    if (
preg_match('/jpg|jpeg|JPG/',$tmp)) 
        { 
        
$imagen=imagecreatefromjpeg($nombre); 
        } 
    if (
preg_match('/png|PNG/',$tmp)) 
        { 
        
$imagen=imagecreatefrompng($nombre); 
        } 
    if (
preg_match('/gif|GIF/',$tmp)) 
        { 
        
$imagen=imagecreatefromgif($nombre); 
        } 

    
$x=imageSX($imagen); 
    
$y=imageSY($imagen); 

    if (
$x $y)  
        { 
        
$w=$ancho
        
$h=$y*($alto/$x); 
        } 

    if (
$x $y)  
        { 
        
$w=$x*($ancho/$y); 
        
$h=$alto
        } 

    if (
$x == $y)  
        { 
        
$w=$ancho
        
$h=$alto
        } 


    
$destino=ImageCreateTrueColor($w,$h); 
   echo 
imagecopyresampled($destino,$imagen,0,0,0,0,$w,$h,$x,$y);  


    if (
preg_match("/png/",$tmp)) 
        { 
        
imagepng($destino,$archivo);  
        }  
    if (
preg_match("/gif/",$tmp)) 
        { 
        
imagegif($destino,$archivo); 
        } 
    else  
        { 
        
imagejpeg($destino,$archivo);  
        } 

    
imagedestroy($destino);  
  echo  
imagedestroy($imagen);  
}
// fin de la función


/*Ahora solo te faltaría aplicarla, lo cual es muy sencillo. Hare un ejemplo con el código que tenias arriba.*/

$nombre_archivo=$_FILES['imagen']['name'];
  
$tam=getimagesize($nombre_archivo);  
                
     if(
$tam[0] > 500 OR $tam[1] > 500)  { 
                    
     
cambiartam($directorio$directorio500500); 
    
    } 
                    

?>
Cualquier duda vuelves a preguntas. Saludos
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza
  #15 (permalink)  
Antiguo 03/03/2010, 10:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

como estas, antes que nada muchas gracias por la info.
bueno, te comento que no logro hacer que la funcion redimensione la imagen, por ejemplo a 200px x 200px, lo que hice (supuse que debia hacer eso) fue modificar en la funcion que me pasaste los siguientes parametros:
donde dice: $nombre_archivo=$_FILES['imagen']['name'];
lo cambie por: $nombre_archivo=$_FILES['file']['name'];//ya que 'file' es el nombre del campo que carga el archivo en el formulario
y donde dice:if($tam[0] > 500 OR $tam[1] > 500) {

cambiartam($directorio, $directorio, 500, 500);
lo cambie por: if($tam[0] > 200 OR $tam[1] > 200) {

cambiartam($directorio, $directorio, 200, 200);//que es el tamaño en pixeles al que quiero redimensionar la imagen (cualquiera sea) que me envia el usuario mediante el formulario.
pero no logro hacerlo.
si guarda bien la ruta a la imagen en la db, pero cuando la visualizo en el navegador no me sale redimensionada
porque puede ser? que estoy haciendo mal?
muchas gracias






Cita:
Iniciado por JoseAlejandro_Realza Ver Mensaje
Para hacer la redimension de las imagenes es muy sencillo, solo necesitas aplicarle una funcion pasandole los parametros necesarios y ya. Te explicare algo sencillo, la funcion solo buscara en tu directorio la imagen segun la ruta que le pases, la copiara y creara una nueva con los tamaños que le asignes. La funcion seria una como esta:

Código PHP:
<?php 

function cambiartam($nombre,$archivo,$ancho,$alto
    { 
    
$verificar explode('.',$nombre);
    
$tmp $verificar[1]; 

    if (
preg_match('/jpg|jpeg|JPG/',$tmp)) 
        { 
        
$imagen=imagecreatefromjpeg($nombre); 
        } 
    if (
preg_match('/png|PNG/',$tmp)) 
        { 
        
$imagen=imagecreatefrompng($nombre); 
        } 
    if (
preg_match('/gif|GIF/',$tmp)) 
        { 
        
$imagen=imagecreatefromgif($nombre); 
        } 

    
$x=imageSX($imagen); 
    
$y=imageSY($imagen); 

    if (
$x $y)  
        { 
        
$w=$ancho
        
$h=$y*($alto/$x); 
        } 

    if (
$x $y)  
        { 
        
$w=$x*($ancho/$y); 
        
$h=$alto
        } 

    if (
$x == $y)  
        { 
        
$w=$ancho
        
$h=$alto
        } 


    
$destino=ImageCreateTrueColor($w,$h); 
   echo 
imagecopyresampled($destino,$imagen,0,0,0,0,$w,$h,$x,$y);  


    if (
preg_match("/png/",$tmp)) 
        { 
        
imagepng($destino,$archivo);  
        }  
    if (
preg_match("/gif/",$tmp)) 
        { 
        
imagegif($destino,$archivo); 
        } 
    else  
        { 
        
imagejpeg($destino,$archivo);  
        } 

    
imagedestroy($destino);  
  echo  
imagedestroy($imagen);  
}
// fin de la función


/*Ahora solo te faltaría aplicarla, lo cual es muy sencillo. Hare un ejemplo con el código que tenias arriba.*/

$nombre_archivo=$_FILES['imagen']['name'];
  
$tam=getimagesize($nombre_archivo);  
                
     if(
$tam[0] > 500 OR $tam[1] > 500)  { 
                    
     
cambiartam($directorio$directorio500500); 
    
    } 
                    

?>
Cualquier duda vuelves a preguntas. Saludos
  #16 (permalink)  
Antiguo 03/03/2010, 10:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

y una cosita mas, al cambiar el parametro = 'imagen' x 'file' me tira el siguiente error en el navegador:
Warning: getimagesize(PRUEBA.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /www/globbal.com.ar/htdocs/SUBIR_Y_GUARDAR_IMAGEN.php on line 110
  #17 (permalink)  
Antiguo 03/03/2010, 21:00
Avatar de JoseAlejandro_Realza  
Fecha de Ingreso: agosto-2008
Ubicación: Maracay - Venezuela
Mensajes: 192
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

Ok hermano, no tengo la certeza, pero estoy casi seguro que es que no esta leyendo la imagen en el directorio correcto, por ello te dice: failed to open stream: No such file or directory in...


Y por ende la funcion getimagensize te genere una advertencia, ya que no consigue el archivo. Debes de colocar el nombre de la carpeta donde se guadan, y luego el nombre de la imagen; por ejemplo, si fuera mi sitio web http://www.enmaracay.net, el script estuviera en la raíz, y la imágenes se guardaran en www.enmaracay.net/imagenes/, entonces en la función deberías de pasar la url local, pero completa, es decir,

Código PHP:
<?php

$nombre_archivo
=$_FILES['imagen']['name']; 

$direccion_foto 'imagenes/'.$nombre_archivo
   
$tam=getimagesize($direccion_foto);   
                 
     if(
$tam[0] > 200 OR $tam[1] > 200)  {  
                     
     
cambiartam($direccion_foto$directorio200200);  
     
    }  


/*Aca agrega esto para que hagas la prueba y compruebes si tienes la ruta de la imagen correcta*/

echo '<img src="'.$direccion_foto.'">';
exit();
?>

Prueba lo que te digo y me avisas. Saludos
__________________
Tu Guía Empresarial http://www.empresarial.org.ve Soluciones Empresariales

Atte: José Alejandro Realza
  #18 (permalink)  
Antiguo 04/03/2010, 10:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

no funciona no hay caso, primero subo la imagen al directorio deseado y guardo la ruta en la base de datos, hasta ahi todo bien, pero luego aplico dicha funcion y nada.
quiza deba hacer al reves primero aplicar la funcion al archivo que subo mediante el formulario, y luego subirlo a la carpeta y guardarlo en la base, no se.
ya me esta doliendo la cabeza con esto, ya vere como me las arreglo...
  #19 (permalink)  
Antiguo 05/03/2010, 12:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Recuperar imagenes de archivo y mostrarlas con php

hola amigos, antes que nada y como siempre muchas gracias por la ayuda, bueno les cuento que logre hacer funcionar la imagen, aqui les paso el codigo completo por si alguien desea hacer lo mismo, podria serle de utilidad:
---------------------------------------------------------------------------------

Primero tomamos la imagen que el usuario nos envia mediante el formulario, la guardamos en una carpeta en el servidor y guardamos la ruta a la imagen en la db:

if(isset( $_FILES["file"]["name"])){ //deben cambiar 'file' x el nombre de su campo en el formulario
$nombre_archivo = str_replace(" ","_",$_FILES["file"]["name"]);
$path = "IMAGENES/";//deben cambiar el nombre de la carpeta x el que deseen
$ruta_imagen = $path.$nombre_archivo; /*declaro una variable $ruta_imagen y la almaceno concatenandolo con las 2 variables $path y $nombre_archivo */
if(move_uploaded_file($_FILES["file"]["tmp_name"], $ruta_imagen))
$sql_insertar = "insert into usuarios values('$id', '".$_SESSION['username']."','$ruta_imagen')";
mysql_query($sql_insertar) or die(mysql_error());
//lo mismo con la informacion de la db, deben cambiarla para c/caso en particular

}

Segundo paso, aplicamos la funcion que va a redimensionar la imagen y mostrarla en el navegador:

function redimensionar($ruta,$ancho,$alto){

$imagen= $_FILES['file']['name'];

$ruta= "IMAGENES/".$imagen;
$dim[0]= 100;//pueden asignarle los valores maximos en pixeles que deseen
$dim[1]= 100;//pueden asignarle los valores maximos en pixeles que deseen
//Obtenemos las dimensiones, la ruta es absoluta.
$dim = getimagesize($ruta);
/*getimagesize() pasa un array a la variable
$dim tal que $dim[0] contiene el ancho de la imagen
y dim[1] contiene el alto.*/
if($dim[1]){
//Para asegurarnos de que dim[1] es diferente de cero
$cociente = $dim[0] / $dim[1];
}
if($alto){
//Para asegurarnos de que alto es diferente de cero
$coc_max = $ancho / $alto;
}

if(($dim[0]<=$ancho)&&($dim[1]<=$alto)){
/*En este caso no pasa nada y
la imagen se imprime con su tamaño original*/
$ancho = $dim[0];
$alto = $dim[1];
}else{
if($cociente>=$coc_max){
/*En este caso el factor más restrictivo
va a ser el ancho de la foto*/
$alto = $ancho / $cociente;
}else{
/*En este caso el factor restrictivo
va a ser la altura de la foto*/
$ancho = $alto * $cociente;
}
}
echo "<img src='$ruta' width='$ancho' height='$alto'>";

}
$imagen= $_FILES['file']['name'];

$ruta= "IMAGENES/".$imagen;//aisgnamos un valor a la ruta hacia la imagen
$ancho= 100;//asignamos un ancho maximo
$alto= 100;asignamos un alto maximo
echo redimensionar($ruta,$ancho,$alto);visualizamos la imagen redimensionada en el navegador

Última edición por apustilnik; 05/03/2010 a las 12:36

Etiquetas: imagenes, recuperar
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 21:19.