21/09/2009, 13:52
|
| | Fecha de Ingreso: octubre-2008 Ubicación: Rio 3
Mensajes: 12
Antigüedad: 16 años, 2 meses Puntos: 0 | |
Respuesta: Insertar Imagen Blob en MySQL Hola, para insertar una imagen en una base de datos debes utilizar campos del tipo blob para almacenar datos binarios y para insertar la imagen debes crear un script que lea tu imagen en binario, aqui hay un ejemplo que saque de bytes.com/topic/mysql/answers/643396-how-store-images-binary-data-mysql-database-using-blob-fields... está en PHP, desde lina de comandos de linux no se como se lee una imagen en binario...
// primero creamos una tabla en mysql con los campos que necesitamos, el campo blob será el que almacene la imagen
CREATE TABLE Image
(
ImgID SERIAL,
ImgTitle VARCHAR(255) NOT NULL Default 'Untitled',
ImgType VARCHAR(255) NOT NULL Default 'png',
ImgData MEDIUMBLOB NOT NULL,
Primary Key(ImgID)
)
// Read the image bytes into the $data variable
//leemos la imagen como bytes y la grabamos en $data
$fh = fopen("MyImg.jpg", "r");
$data = addslashes(fread($fh, filesize("MyImg.jpg")));
fclose($fh);
// Create the query
// hacemos el insert de la variable $data en el campo blob de la tabla
$SQL = "
INSERT INTO Image(ImgTitle, ImgType, ImgData)
VALUES('My Image', 'jpg', '$data')";
// Execute the query
$RESULT = mysql_query($SQL) or die("Couldn't insert image");
// Fetch the latest image.
// para ver la ultima imagen cargada
$SQL = "SELECT ImgData, ImgType FROM Image ORDER BY ImgID DESC LIMIT 1";
$RESULT = @mysql_query($SQL) or die("Query failed");
// Read the results
if($ROW = mysql_fetch_assoc($RESULT)) {
// Set the content type and print the data.
header("Content-type: img/". $ROW['ImgType']);
echo $ROW['ImgData'];
}
else {
// No images were found, print error
echo "No images were found";
}
espero que les sea de utilidad, para mi lo fue
Saludos |