Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2007, 10:07
Avatar de cala932
cala932
 
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Problema al visualizar imagen

Hola he hecho un formulario para guardar imagenes en la base, pero cuando hago la consulta para poder visualizarlas me muestra la imagen en codigo. Esto es lo que hice: cree una tabla `sa_imagenes` con 4 campos `tb_imagen_id`, `tb_imagen_titulo`, `tb_imagen_contenido` y tb_imagen_nombre. EL tipo de campo contenido es "BLOB".

Esta es una funcion conexion que incluyo en todos los scripts:
<?
session_start();
session_register("autentificado","usuario","pass") ;
function mysql_consulta($consulta,$BD,$usuario,$pass)
{
if (!mysql_connect('localhost',$usuario,$pass))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($BD))
{
echo "Error seleccionando la base de datos.";
exit();
}
if(!($resultado=mysql_query($consulta)))
{
die("problemas con el comando sql: <br> consulta:$consulta<br>error:".mysql_error());
}
return $resultado;
}

?>


Este es el formulario para localizar la imagen:
<form enctype="multipart/form-data" action="guardar.php" method="post">
imagen: <input type="text" name="titulo" size="30">
Ubicación: <input type="file" name="archivito">
<input type="submit" value="Enviar archivo">
</form>

Este es el script guardar:
<?
//recupero datos de la imagen
$archivo = $_FILES["archivito"]["tmp_name"];
$nombre = $_FILES["archivito"]["name"];
$tamanio = $_FILES["archivito"]["size"];
//recupero el titulo bajo el cual lo guardo
$titulo = $_POST["titulo"];

if ( $archivo != "none" )
{
$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);

$ssql=mysql_consulta("INSERT INTO `sa_imagenes` (`tb_imagen_id`,`tb_imagen_nombre`,`tb_imgen_titul o`,`tb_imagen_contenido`) VALUES (0,'$nombre','$titulo','$contenido');","sec_admini strativa","$usuario","$pass");
$ssql=mysql_insert_id();
if($ssql)
echo"Se ha guardado la imagen en la base de datos.";
else
echo"NO se ha podido guardar la imagen en la base de datos.";
}
else
print "No se ha podido subir la imagen al servidor";
?>

Este es un script que muestra una lista de las imagenes:
<?
$ssql=mysql_consulta("SELECT * FROM `sa_imagenes`","sec_administrativa","$usuario","$p ass");
while($fila = mysql_fetch_array($ssql))
{
echo "" . $fila["tb_imgen_titulo"];
echo"<br>";
echo"" . $fila["tb_imagen_nombre"];
echo"<br>";
$id=$fila["tb_imagen_id"];
echo"<a href='ver.php?id=$id'>VER IMAGEN</a>
<br>
<br>";
}
?>


Y este el script ver:
<?
header("Content-type: image/jpeg");
$id = $_GET['id'];
$qry=mysql_consulta("SELECT `tb_imagen_contenido`,`tb_imagen_nombre` FROM `sa_imagenes` WHERE `tb_imagen_id`=$id","sec_administrativa","$usuario ","$pass");
while($fila=mysql_fetch_array($qry))
{
$contenido=mysql_result($qry, 0, "tb_imagen_contenido");
$nombre=mysql_result($qry, 0, "tb_imagen_nombre");
print $contenido;
}
?>

Todo funciona pero a la hora de mostrar la imagen me larga codigo puro. No se que hacer.