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.