imagen grabada en una base de datos mysql.
Todo bien para guardar en un registro.. pero a la hora de recuperar... no
funciona.
Ya tengo los ojos cruzados...
Tengo que instalar la libreria GD?
Igualmente les envio el codigo. (la conexion con la BD funciona, es el
include de x ahi)
Muchas Gracias
Base de datos:
mysql> describe imagenes;
id int(10) unsigned | | PRI | NULL | auto_increment |
bina | longblob | | |
id_cliente | bigint(20) unsigned | | | 0
fecha | datetime | | | 0000-00-00 00:00:00
formato | varchar(45) | | |
+------------+---------------------+------+-----+---------------------+----------------+id_cliente | bigint(20) unsigned | | | 0
fecha | datetime | | | 0000-00-00 00:00:00
5 rows in set (0.00 sec)
########################################################################################
Formulario de entrada:
<html>
<head>
<title>Imagen a Blob</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="frmimage" id="frmimage" method="post"
enctype="multipart/form-data" action="carga.php">
Imagen: <input type="file" id="foto" name="foto" /><br />
<input type="submit" name="enviar" id="enviar" value="Guardar" />
</form>
</body>
</html>
########################################################################################
este es el script para poder subir una imagen.
<?
include("conexion.php");
$archivo = $_FILES["foto"]["tmp_name"];
$tamanio = $_FILES["foto"]["size"];
$tipo = $_FILES["foto"]["type"];
$nombre = $_FILES["foto"]["name"];
echo "Archivo temporal:".$archivo."<br>";
echo "Archivo tamaño:".$tamanio."<br>";
echo "Archivo tipo:".$tipo."<br>";
echo "Archivo nombre:".$nombre."<br>";
$abrirarchivo = fopen($archivo, "rb");
$archivocontenido = fread($abrirarchivo, $tamanio);
$archivocontenido = addslashes($archivocontenido);
fclose($abrirarchivo);
$fecha_carga=date("Y-m-d H:i:s");
mysql_query("insert into imagenes (bina, id_cliente,fecha,formato)
VALUES ('$archivocontenido',1,
'$fecha_carga','$tipo')");
echo mysql_affected_rows();
?>
########################################################################################
Si ejecuto un select desde el MYSQL QUERY BROWSER, muestra que tiene 1
registro.
Estoy probando con solo una imagen.
El script para recuperar es:
<?
include("conexion.php");
$resultado=mysql_query("select * from imagenes where (id_cliente=1)");
$registro = mysql_fetch_array($resultado);
$mime=$registro[4];
$imagen=$registro[1];
header("Content-type: $mime");
echo $imagen;
?>
########################################################################################
Pero en el navegador me aparece:
No se puede mostrar la imagen "http://127.0.0.1/recupera.php" porque
contiene errores.
En que me estoy equivocando?