Imagen en base de datos

Hola:
Como puedo insertar una imagen en base de datos mysql y como puedo mostrar la imagen en una página obteniedola de la bd.
Estoy utilizando mysql y dream mx
?

1 Respuesta

Respuesta
1
Es un poco lioso lo que me pides, por eso te pongo tres ficheros que he encontrado, y funciona bastante bien. Te sugiero que lo pruebes, a ver si te funciona. Yo siempre lo suelo hacer insertando las imágenes en un directorio, con un nombre codificado, y guardando en la BD los nombres de esos ficheros, pero me imagino que tu problemática será otra. Ah, eso si, PHP + MySql. Suerte!.
Primero crea la tabla o añade el campo a la tuya:
CREATE TABLE `images` (
`imgid` INT NOT NULL AUTO_INCREMENT ,
`sixfourdata` LONGTEXT NOT NULL ,
PRIMARY KEY ( `imgid` )
);
Luego creamos los tres archivos:
Readdir.php lee un directorio que tu le indiques, y lo inserta en la BD.
image.php decodifica los datos
View.php m, uestra la imagen por pantalla.
readdir.php:
<?
###############################
# DB CONNECTION
# CHANGE THESE VALUES
###############################
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("base64imgdb");
$path = "./";
$dir_handle = opendir($path) or die("Unable to open directory $path");
while ($file = readdir($dir_handle)) {
$filetyp = substr($file, -3);
if ($filetyp == 'gif' OR $filetyp == 'jpg') {
$handle = fopen($file,'r');
$file_content = fread($handle,filesize($file));
fclose($handle);
$encoded = chunk_split(base64_encode($file_content));
$sql = "INSERT INTO images SET sixfourdata='$encoded'";
mysql_query($sql);
}
}
closedir($dir_handle);
echo("complete");
mysql_close($dbcnx);
?>
image.php:
<?
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("base64imgdb");
$img = $_REQUEST["img"];
$result = mysql_query("SELECT * FROM images WHERE imgid=" . $img . "");
if (!$result) {
echo("<b>Error performing query: " . mysql_error() . "</b>");
exit();
}
while ($row = mysql_fetch_array($result) ) {
$imgid = $row["imgid"];
$encodeddata = $row["sixfourdata"];
}
mysql_close($dbcnx);
echo base64_decode($encodeddata);
?>
view.php:
<html>
<body>
..
<img src='image.php?img=1' border="0" alt="">
..
</body>
</html>
En cualquier caso, puedes consultar: http://www.spoono.com/php/tutorials/tutorial.php?id=42 que te lo explica paso por paso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas