Imagenes a MySQL

Hola,
Estoy tratando de subir una imagen a la base de datos MySQL de mi sitio y no se como hacerlo. Cree un formulario en DreamW que supuestamente me permite hacerlo pero sin embargo, no se como buscar el archivo JPG en mi PC y guardarlo al campo "IMAGEN" en la base de datos del servidor.
En otras palabras, necesito examinar mis carpetas desde la página para seleccionar el archivo JPG, y luego añadirlo al campo IMAGEN de la tabla correspondiente. NOta: (el campo IMAGEN es del tipo BLOB)
Agradecería cualquier ayudita. Gracias.
Respuesta
1
Para examinar tu ordenador en busca de la imagen debes poner un input de tipo "file", con ello aparece el típico botón examinar. De todas formas subir una imagen a una base de datos como datos binarios no es tan fácil como parece. A continuación te pongo un código que te puede servir:
Este código es el del script en el que introducimos la imagen y otros datos:
---- guardar.php -----
<?php
////////////////////
//A T E N C I Ó N //
////////////////////
//Este script da errores al grabar los datos binarios y por tanto al visualizar las imágenes si se ejecuta
//en local en el so Windows. Funciona perfectamente en un servidor UNIX.
// Este script muestra como guardar archivos binarios (imágenes, documentos de word) en una
// base de datos Mysql
?>
<HTML>
<HEAD>
<TITLE>Guardando datos binarios en una base de datos MySQL</TITLE>
<link href="upload.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY>
<?php
// Este es el código que se ejecutará si el formulario se envia
if ($submit) {
// conexión a la base de datos
Mysql_connect("localhost","root",""); //servidor, usuario y contraseña
mysql_select_db("imagenbd"); //nombre de la base de datos
/* addslashes: Escapa mediante una barra invertida los caracteres especiales que necesitan marcarse
en consultas de bases de datos, etc. Estos son la comilla simple ('), comilla doble ("),
barra invertida (\) y NUL (el byte nulo).
Fread: Se encarga de leer un determinado número de bytes de un fichero y devolverlos en una cadena
de caracteres. La sintaxis de la función es fread(int fichero, int numero de bytes).
Filesize: Determina el tamaño de un fichero en bytes.
"r": Fichero de solo lectura.
*/
$datos = addslashes(fread(fopen($datosFormulario, "rb"), filesize($datosFormulario)));
echo $datos;
echo "<br><img src=\"$datos\"><br>";
echo $datosFormulario."<br>";
echo $datosFormulario_name."<br>";
echo filesize($datosFormulario)."<br>";
//Introducimos en la tabla --datosbinarios-- los datos que provienen del formulario
$resultado=MYSQL_QUERY("INSERT INTO datosbinarios (descripcion,datosbinarios,nombre,tamano,tipo) ".
"VALUES ('$descripcion','$datos','$datosFormulario_name','$datosFormulario_size',
'$datosFormulario_type')");
/* Mysql_insert_id(cursor) devuelve el valor generado para un atributo de tipo AUTO_INCREMENT (en este
caso el campo id de la tabla datosbinarios) en el último INSERT. */
$id= mysql_insert_id();
print "<p>Este archivo tiene el siguiente ID: <b>$id</b>";
//cerramos la base de datos
mysql_close();
} else {
// formulario
?>
<form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
Descripción del archivo:<br>
<input type="text" name="descripcion" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<br>Archivo para cargar en la BD:<br>
<input type="file" name="datosFormulario" size="40">
<p><input type="submit" name="submit" value="Cargar">
</form>
<?php
}
?>
<p><br>
<a href="mostrarfotos.php">Mostrar todas las fotos </a></p>
</BODY>
</HTML>
--------------------------------
Y el siguiente script es el que recoge los datos:
---mostrarfotos.php ----
<?php
if($id) {
// Datos de conexión a la bas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas