Foros del Web » Programando para Internet » PHP »

problemas al tratar de visualizar una imagen en el navegador

Estas en el tema de problemas al tratar de visualizar una imagen en el navegador en el foro de PHP en Foros del Web. hola a todos, es mi primera vez haciendo una pregunta en este foro, asi que mis disculpas por equivocarme o no saber las reglas por ...
  #1 (permalink)  
Antiguo 05/05/2012, 11:46
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
problemas al tratar de visualizar una imagen en el navegador

hola a todos, es mi primera vez haciendo una pregunta en este foro, asi que mis disculpas por equivocarme o no saber las reglas por completo. Me sucede lo siguiente:
Tengo una base de datos hecha en postgres, utilizo php para la comunicacion con la misma, estoy intentando traer una imagen desde la base de datos (ya esta registrada) pero al tratar de visualizarla no me la muestra, se que los datos se los trae correctamente por que hago select a la tabla donde esta dicha imagen y se trae los demas datos dentro de la misma tupla, tambien estoy seguro que la imagen esta insertada en el campo correspondiente que me estoy trayendo. Ademas de esto utlizo Header('Content-type: image/jpeg' ) ya que la imagen esta en este formato para poder visualizarla en el navegador, pero no la muestra a continuacion copio el codigo que utlizo, cabe aclarar que este codigo es descargado de un foro que ahora mismo no recuerdo, ademas se que el codigo funciona por que lo probe es otro equipo con una configuracion diferente en el php.ini y funciono perfectamente.

formulario para cargar la imagen:


Código HTML:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>PHP upload</title> 
<link href="estilo.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
<table width="413" border="0" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td width="413" height="40" class="titulo">PHP upload</td> 
  </tr> 
  <tr> 
    <td class="text">Por favor seleccione el archivo a subir:</td> 
  </tr> 
  <tr> 
  <form action="update.php" method="post" enctype="multipart/form-data"> 
    <td class="text"> 
      <input name="archivo" type="file" class="casilla" id="archivo" size="35" /> 
      <input name="enviar" type="submit" class="boton" id="enviar" value="Upload File" /> 
      <input name="action" type="hidden" value="upload" /> </td> 
    </form> 
  </tr> 
  <tr> 
    <td class="text" style="color:#990000"><?php //echo $status; ?></td> 
  </tr> 
  <tr> 
    <td height="30" class="subtitulo">Listado de Archivos Subidos </td> 
  </tr> 
  <tr> 
    <td class="infsub"> 
    <?php  
    if ($gestor = opendir('files')) { 
        echo "<ul>"; 
        while (false !== ($arch = readdir($gestor))) { 
           if ($arch != "." && $arch != "..") { 
               echo "<li><a href=\"files/".$arch."\" class=\"linkli\">".$arch."</a></li>\n"; 
           } 
        } 
        closedir($gestor); 
        echo "</ul>"; 
    } 
    ?> </td> 
  </tr> 
</table> 
</body> 
</html> 
script que carga la imagen: y la inserta en la tabla correspondiente:

Código PHP:
<?php  
//$status = ""; 
if ($_POST["action"] == "upload") { 
    
// obtenemos los datos del archivo  
    
$_tamano $_FILES["archivo"]['size']; 
    
$_tipo $_FILES["archivo"]['type']; 
    
$_archivo $_FILES["archivo"]['name']; 
    
$_prefijo substr(md5(uniqid(rand())),0,6); 
    
$_destino =  "files/".$_prefijo."_".$_archivo
    if (
$_archivo != "") { 
        
// guardamos el archivo a la carpeta files 
       
        
if (copy($_FILES['archivo']['tmp_name'],$_destino)) { 
            
//$status = "Archivo subido: <b>".$_archivo."</b>";
            
update_img($_destino); 
            echo 
'Imagen actualizada con exito!';          
            
//unlink($_destino);
          
        
} else { 
            echo 
"Error al subir el archivo"
        } 
    } else { 
        echo 
"Error al subir archivo"
    } 
}

function 
update_img($_destino){
            
$data  file_get_contents($_destino);
            
$image pg_escape_bytea($data);
            
$conn  pg_connect("user=unusuario password=unpassword dbname=db host=localhost port=5432");
            
pg_query($conn"UPDATE empresa_sistema SET emps_logo = '{$image}' WHERE emps_codigo = 'uncodigo'");
            
pg_close($conn);
}
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title></title>
    </head>
    <body>
        <a href="display.php">ver imagen</a> <br>
        <a href="upload.php">cargar otro archivo</a>
    </body>
</html>
y este es el codigo para mostrarla en el navegador:


<?php
$conn = pg_connect("user=unusuario password=unpassword dbname=db host=localhost port=5432");
$query = pg_query($conn, "SELECT emps_logo FROM empresa_sistema WHERE emps_codigo = 'uncodigo'");
$row = pg_fetch_row($query);
$image = pg_unescape_bytea($row[0]);

header("Content-type: image/jpeg");
echo $image;

pg_close($conn);
?>

espero que me puedan ayudar, de ante mano muchisimas gracias.
  #2 (permalink)  
Antiguo 06/05/2012, 11:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: problemas al tratar de visualizar una imagen en el navegador

Hay que saber si la consulta está bien y te devuelve un resultado adecuado, puedes usar:

Código PHP:
Ver original
  1. $query = pg_query(/* ***** Tu consulta ***** */) or die(pg_last_error());
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/05/2012, 08:34
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: problemas al tratar de visualizar una imagen en el navegador

Cita:
Iniciado por Triby Ver Mensaje
Hay que saber si la consulta está bien y te devuelve un resultado adecuado, puedes usar:

Código PHP:
Ver original
  1. $query = pg_query(/* ***** Tu consulta ***** */) or die(pg_last_error());
bueno primero muchisimas gracias por responder a mi pregunta. Si, estoy seguro que el formulario registra la imagen, ya que estoy conectado a una base de datos en la lan donde trabajo, la base de datos esta en un servidor de pruebas y nos conectamos a ella remotamente para hacer pruebas, y efectivamente la imagen se registra dado que compruebo el tamaño del campo y este corresponde al peso de la imagen que registro, ademas de que no me muestra errores de registro al hacer la insercion, asi que el problema no esta en el registro. si pudieras sugerirme otra cosa te lo agradeceria. De ante mano muchisimas gracias.

Etiquetas: formulario, html, navegador, tabla, usuarios, trazar
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 14:05.