Problemas con imágenes

Tengo unas imágenes en una tabla en mysql, después de recuperarlas con una consulta y quererlas mostrar solo se muestran caracteres que no tiene nada que ver con una imagen ¿quisiera saber como hacerlo?
¿Ah y sabes de algún buen manual en internet para no molestarte tan seguido?
Gracias por la respuesta... Ernesto

1 respuesta

Respuesta
1
Hi,
Mira, manuales vas a encontrar en www.mysql.com pero están en ingles. Si sabes ingles bajalos porque son muy buenos y traen códigos de ejemplo.
Sobre las imágenes, depende donde las quieres mostrar. Las imágenes están en formato binario y si no le indicas que es una imagen mySQL lo único que tira son 0s y 1s. Si lo que quieres es mostrarla en un navegador podes usar estos scripts en PHP (una para guardar la imagen y otro para mostrarla):
----------------------
Para guardar la imagen
----------------------
<?php
// store.php3 - by Florian Dittmer <[email protected]>
// Example php script to demonstrate the storing of binary files into
// an sql database. More information can be found at http://www.phpbuilder.com/
?>
<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>
<?php
// code that will be executed if the form has been submitted:
if ($submit) {
// connect to the database
// (you may have to adjust the hostname,username or password)
MYSQL_CONNECT("localhost","root","password");
mysql_select_db("binary_data");
$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
$result=MYSQL_QUERY("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".
"VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
$id= mysql_insert_id();
print "<p>This file has the following Database ID: <b>$id</b>";
MYSQL_CLOSE();
} else {
// else show the form to submit new data:
?>
<form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
File Description:<br>
<input type="text" name="form_description" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>File to upload/store in database:<br>
<input type="file" name="form_data" size="40">
<p><input type="submit" name="submit" value="submit">
</form>
<?php
}
?>
</BODY>
</HTML>
---------------------
Fin guardar imagen
-----------------------
-----------------------
Para mostrar la imagen
-----------------------
<?php
// getdata.php3 - by Florian Dittmer <[email protected]>
// Example php script to demonstrate the direct passing of binary data
// to the user. More infos at http://www.phpbuilder.com
// Syntax: getdata.php3?id=<id>
if($id) {
// you may have to modify login information for your database server:
@MYSQL_CONNECT("localhost","root","password");
@mysql_select_db("binary_data");
$query = "select bin_data,filetype from binary_data where id=$id";
$result = @MYSQL_QUERY($query);
$data = @MYSQL_RESULT($result,0,"bin_data");
$type = @MYSQL_RESULT($result,0,"filetype");
Header( "Content-type: $type");
echo $data;
};
?>
------------------
Fin mostrar imagen
------------------
El script de mostrar imagen se puede utilizar en un codigo HTML de la forma "<img src="mostrarimagen.php3?id=3">"
De otra forma si haces una aplicación en Delphi podes mostrar la imagen agregando un simple componente que "chupa" los datos binarios y los transforma un una imagen.
Obviamente los scripts que te mande son lo base de lo base y son modificables. Se pueden agregar muchas cosas y no solo sirve para guardar y mostrar imágenes porque en la tabla llevas el tipo de datos que guardas.
Me olvidaba la base de datos original tiene el formato:
CREATE TABLE binary_data (
id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
description CHAR(50),
bin_data LONGBLOB,
filename CHAR(50),
filesize CHAR(50),
filetype CHAR(50)
);
Modifícala a tu gusto. Es solo un ejemplo que funciona.
Espero que te haya servido y cualquier otra consulta que tengas no dudes en preguntarme y no te preocupes que no molestas :).
Nahuelon..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas