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.