Bueno lo primero que necesitamos es nuestra tabla Code: (CREATE) TABLE images ( id int(10) unsigned NOT NULL auto_increment, image blob NOT NULL, name varchar(255) NOT NULL default '', weight varchar(15) NOT NULL default '', type varchar(25) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; Luego el formulario por el cual se subira nuestra imagen formulario.php Code: <HTML> <HEAD> <TITLE>Binario a BD</TITLE> </HEAD> <BODY> <?php if (isset($_GET['proceso'])){ echo $_GET['proceso']."<br>"; } ?> <FORM enctype="multipart/form-data" method="post" action="insertar.php"> Archivo: <INPUT type="file" name="archivo" size="30"> <INPUT type="submit" name="submit" value="Subir archivo"> </FORM> </BODY> </HTML> El archivo por el cual se insertara nuestra imagen en la Base de datos insertar.php Code: <?php //Primero, analiza si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción: // No se comprueba aqui si se ha subido correctamente. if (empty($_FILES['archivo']['name'])){ header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. exit; } //Establecemos una conexión con la base de datos. $Host = "localhost"; $User = "root"; $Password = "pass"; $DataBase = "Midb"; $conexion = mysql_connect($Host,$User,$Password) or die("No se pudo realizar la conexion con el servidor."); mysql_select_db($DataBase,$conexion) or die("No se puede seleccionar BD"); $binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; $binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal))); // Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. $binario_nombre=$_FILES['archivo']['name']; $binario_peso=$_FILES['archivo']['size']; $binario_tipo=$_FILES['archivo']['type']; //insertamos los datos en la BD. $consulta_insertar = "INSERT INTO images (id, image, name, weight, type) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"; mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); header("location: imagenes.php"); exit; ?> Ahora el archivo para ver la imagen ver.php Code: <?php if(isset($_GET['id'])) { //Establecemos una conexión con la base de datos. $Host = "localhost"; $User = "root"; $Password = "pass"; $DataBase = "Midb"; $conexion = mysql_connect($Host,$User,$Password) or die("No se pudo realizar la conexion con el servidor."); mysql_select_db($DataBase,$conexion) or die("No se puede seleccionar BD"); $sql = "SELECT name,image,type,weight FROM images WHERE id='".$_GET['id']."'"; $consulta = mysql_query($sql,$conexion); $datos = mysql_result($consulta,0,"image"); $tipo = mysql_result($consulta,0,"type"); $nombre = mysql_result($consulta,0,"name"); $peso = mysql_result($consulta,0,"weight"); header("Content-type: $tipo"); header("Content-length: $peso"); header("Content-Disposition: inline; filename=$nombre"); echo $datos; } ?> Y por ultimo el archivo para ver todas las imagenes guardadas en nuestra base de datos imagenes.php Code: <?php //Establecemos una conexión con la base de datos. $Host = "localhost"; $User = "root"; $Password = "pass"; $DataBase = "Midb"; $conexion = mysql_connect($Host,$User,$Password) or die("No se pudo realizar la conexion con el servidor."); mysql_select_db($DataBase,$conexion) or die("No se puede seleccionar BD"); $sql = "SELECT id,name,type,weight FROM images"; $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta"); While ($registro=mysql_fetch_assoc($consulta)){ echo "<img src=\"ver.php?id=".$registro['id']."\">"; echo "<br> Nombre archivo: ".$registro['archivo_nombre']; echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo']; echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>"; } ?> PD: Este Script no lo desarrolle yo pero tiene muchos cambios hechos por mi. PD: Clickeen mi pokemon...