Foros del Web » Programando para Internet » PHP »

ayuda!!! imagenes desde base de datos

Estas en el tema de ayuda!!! imagenes desde base de datos en el foro de PHP en Foros del Web. hola este es un tutorial que encontre aqui el problema es que no he podido lograr ver las imagenes en mi web siemrpre me sale ...
  #1 (permalink)  
Antiguo 12/08/2008, 09:50
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 9 meses
Puntos: 1
ayuda!!! imagenes desde base de datos

hola este es un tutorial que encontre aqui el problema es que no he podido lograr ver las imagenes en mi web siemrpre me sale un X donde deberia ir la imagen ya comprobe los campos blop en mysql y me estan almacenando todo perfectamente el problema es que no me esta mostrando ninguna imagen nuevamente recurro a ustedes que me han ayudado tanto.

formulario.php
Código PHP:
<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>
insertar .php
Código PHP:
<?php
//Primero, arranca el bloque PHP y checkea 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;
}

//establece una conexión con la base de datos.
$conexion mysql_connect("localhost","xxxx","xxxxx") or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db("xxx",$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 TBIMAGEN (id, archivo_binario, archivo_nombre, archivo_peso, archivo_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.");
header("location: listar_imagenes.php");  // si ha ido todo bien
exit;
?>
ver.php
Código PHP:
<?php
//if(isset($_GET['id'])) {

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

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

echo 
'<br>'.
    
$sql "SELECT archivo_nombre,archivo_binario,archivo_tipo FROM TBIMAGEN WHERE id='".$_GET['id']."'";

    
$consulta mysql_query($sql,$conexion);

echo 
'<br>'.
    
$datos mysql_result($consulta,0,"archivo_binario");
echo 
'<br>'.
    
$tipo mysql_result($consulta,0,"archivo_tipo");
echo 
'<br>'.
    
$nombre mysql_result($consulta,0,"archivo_nombre");
echo 
'<br>'.
    
$peso mysql_result($consulta,0,"archivo_peso");


//    header("Content-type: $datos");
    
header("Content-type: $tipo");
    
header("Content-length: $peso"); 
    
header("Content-Disposition: inline; filename=$nombre"); 
 
echo 
'<br>'.
    
$datos;
echo 
'<br>'.
    
$tipo;
echo 
'<br>'.
    
$nombre;

//}
?>
listar.php
Código PHP:
<?php
    mysql_connect
("localhost","xxxx","xxxx") or die ("no se ha podido conectar a la BD");

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

    
$sql "SELECT id,archivo_binario,archivo_nombre,archivo_tipo,archivo_peso FROM TBIMAGEN";
    
$consulta mysql_query($sql) or die ("No se pudo ejecutar la consulta");

    While (
$registro=mysql_fetch_assoc($consulta)){
        echo 
"<img src=\"ver.php?id=1".$registro['archivo_binario']."\">";
        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>";
   }
    
    

?>
  #2 (permalink)  
Antiguo 13/08/2008, 07:24
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda!!! imagenes desde base de datos

Fijate en el código fuente generado. Esa debería ser una pista fundamental.

Veo que tenés

ver.php?id=1.$archivo_binario

Por lo que si estoy siguiendo bien la lógica del programa, lo que estás haciendo es concatenar el contenido binario de la imagen en la URL, lo cual es incorrecto. No necesitás obtener el contenido el la página que llama (listar.php), solo el ID (y los otros datos que querés mostrar).

Creo que deberías probar con:

ver.php?id=".$registro['id']

Las otras partes parecen correctas.


Saludos.
  #3 (permalink)  
Antiguo 13/08/2008, 08:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda!!! imagenes desde base de datos

También te invito a que leas en los aportes del foro el tutorial para subir archivos en formato binario que nos dejo Cluster, con el te podrás quitar muchas dudas.

Saludos.
  #4 (permalink)  
Antiguo 13/08/2008, 08:52
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 9 meses
Puntos: 1
hola buenos dias
alvlin realice los cambios que me dijiste pero sigo con el error me sigue apareciendo la x en donde deberia ir la imagen y en la base de datos todo bien el archivo esta hay y guardado con todos los datos pero no me muestra la imagen :(

gracias x tu ayuda

hola buenos dias
alvlin realice los cambios que me dijiste pero sigo con el error me sigue apareciendo la x en donde deberia ir la imagen y en la base de datos todo bien el archivo esta hay y guardado con todos los datos pero no me muestra la imagen :(

gracias x tu ayuda

=)

Última edición por GatorV; 13/08/2008 a las 08:57
  #5 (permalink)  
Antiguo 13/08/2008, 09:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda!!! imagenes desde base de datos

Algo que no había visto antes es que en el PHP que genera la imagen estás mandando texto ($tipo, $nombre).
Eso no va a funcionar.

Haz lo que te dice GatorV, fijate en las FAQ para comparar tu código con los ejemplos que se muestran ahí.


Saludos.
  #6 (permalink)  
Antiguo 13/08/2008, 09:44
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: ayuda!!! imagenes desde base de datos

:(
vale gracias
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 00:19.