Foros del Web » Programando para Internet » PHP »

Imagen en base de datos

Estas en el tema de Imagen en base de datos en el foro de PHP en Foros del Web. Hola a todos!!! Tengo un pequeño problema con insertar y mostrar una imagan que venga desde una base de datos con un campo " mediumblob ...
  #1 (permalink)  
Antiguo 01/08/2012, 14:20
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Imagen en base de datos

Hola a todos!!!
Tengo un pequeño problema con insertar y mostrar una imagan que venga desde una base de datos con un campo "mediumblob".

Para insertar tengo el siguiente codigo

Código PHP:
<?php
//Conexion
include 'inc/conection.php';






if (isset(
$_POST['enviar'])) {

if (empty(
$_FILES['archivo']['name'])){
header("location: carga.php"); //o como se llame el formulario ..
exit;
}

//establece una conexión con la base de datos.
$conexion mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("prueba",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca.

// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ;

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$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 imagenes ( imagen, nombre, peso, tipo ) 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.");



}
////Desconexion DB
?>

<form enctype="multipart/form-data" method="POST">
Imagen: <input type="file" name="archivo" /><br />
Breve Descripcion: <input type="text" name="descripcion" /> <i>(Opcional)</i><br /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>
Yo veo en la base que si inserta un registro, pero la pregunta es,
¿Como se que lo inserto de forma correcta?

-------------------------
Para mostrarar la imagen tengo dos archivos,
uno que es donde tengo solo html con el siguiente codigo

Código HTML:
Ver original
  1. .
  2. .
  3. .
  4.  
  5. <form name="formulario" id="formulario" target="princ">
  6.   <img src="verblob.php?id=4" alt="Imagen desde Blob" />
  7.  
  8. </form>
  9. .
  10. .
  11. .


Y en la pagina verblob.php tengo lo siguiente

Código PHP:
include 'inc/conection.php';

if(isset(
$_GET['id'])) {

    
// you may have to modify login information for your database server:
    
$conexion=mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD");

    
mysql_select_db("prueba") or die ("no se ha podido seleccionar la BD");

    
$sql "SELECT nombre archivo_nombre,imagen archivo_binario, tipo archivo_tipo,peso archivo_peso FROM imagenes WHERE id='".$_GET['id']."'";

    
$consulta mysql_query($sql,$conexion);

    
$datos mysql_result($consulta,0,"archivo_binario");
    
$tipo mysql_result($consulta,0,"archivo_tipo");
    
$nombre mysql_result($consulta,0,"archivo_nombre");
    
$peso mysql_result($consulta,0,"archivo_peso");


    
header("Content-type: $tipo");
    
header("Content-length: $peso"); 
    
header("Content-Disposition: inline; filename=$nombre"); 
 
   echo 
$datos;



En la pagina dodne tengo el tag img no me muestra nada

y en esta ultima donde imprimo echo $datos;

Me imprime un buen de caracteres especiales.

No se que es lo que estoy haciendo ma, ya lei en varios foros y nada de nada

Espero me puedan ayudar

Estoy en
mysql5
php 5
debian

Espero me puedan ayudar!!!

gracias de antemano
  #2 (permalink)  
Antiguo 01/08/2012, 14:55
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Imagen en base de datos

http://www.webtaller.com/construccio..._mysql_php.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: formulario, html, imagenes, mysql, registro, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:48.