Foros del Web » Programando para Internet » PHP »

No puedo ver campo blob desde PHP

Estas en el tema de No puedo ver campo blob desde PHP en el foro de PHP en Foros del Web. se guarda perfecto en un campo blob pero en vez de verse la imagen se ven millones de letras... me alludan , primero esta la ...
  #1 (permalink)  
Antiguo 16/06/2014, 19:28
Avatar de thepiratebyte  
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 9 años, 11 meses
Puntos: 0
Exclamación No puedo ver campo blob desde PHP

se guarda perfecto en un campo blob pero en vez de verse la imagen se ven millones de letras... me alludan , primero esta la carga de imagen y mas abajo la tendria que mostrar

Código PHP:
<? 


# Comprovamos que se haya subido un fichero  
if (is_uploaded_file($_FILES["userfile"]["tmp_name"]))  
{  
    
# Cogemos el formato de la imagen  
    
if ($_FILES["userfile"]["type"]=="image/jpeg" || $_FILES["userfile"]["type"]=="image/pjpeg" || $_FILES["userfile"]["type"]=="image/gif" || $_FILES["userfile"]["type"]=="image/bmp" || $_FILES["userfile"]["type"]=="image/png")  
    {  
        
# Cogemos la anchura y altura de la imagen  
        
$info=getimagesize($_FILES["userfile"]["tmp_name"]);  
     

        
# Escapa caracteres especiales  
        
$imagenEscapes=mysql_real_escape_string(file_get_contents($_FILES["userfile"]["tmp_name"]));  

        
# Agregamos la imagen a la base de datos  
        
$result=mysql_query("UPDATE user_registration SET avatar='".$imagenEscapes."' WHERE usuario='".$_SESSION['k_username']."' ",$link);  
        
# Cogemos el identificador con que se ha guardado  
        
$id=mysql_insert_id();  

}}  
?>  

<form ENCTYPE="multipart/form-data" action="user.php" method="POST">  
    <INPUT NAME="userfile" TYPE="file">  
    <p><input type="submit" value="Guardar Imagen">  
     
<?      

// armo el  query 
 
$result mysql_query("SELECT avatar FROM user_registration WHERE usuario='".$_SESSION['k_username']."'"); 

while(
$f mysql_fetch_assoc($result)){  


  
?> 
  
<table border="2" cellspacing="2" cellpadding="2" widht="200" height="200"> 
<tr> 
<td> 
<img src=<?php echo $f['avatar']; ?> width="65" height="65"/></td> 
</tr> 
</table> 
<? 

?>
  #2 (permalink)  
Antiguo 16/06/2014, 19:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: No pedo ver campo blob desde PHP

O la salvas en un archivo y luego lo muestras ó al leer del campo blob o si quieres mostrarla directamente debes colocar las cabeceras:

Cargas la imagen que ahora es una imagen.php

Código PHP:
Ver original
  1. <img src="imagen.php" />

Aqui tu imagen:

Código PHP:
Ver original
  1. <?php
  2. // archivo: Imagen .php
  3.  
  4.  
  5. header('Content-Type: image/jpeg');  // suponiendo es un jpg
  6.  
  7. if (!isset($_SESSION['k_username']))
  8. {
  9.      // muestro imagen por "defecto"
  10.      $img_default = file_get_contents("imagen_default.jpg");
  11.      echo $img_default;
  12. }
  13.  
  14. include "conexionDB.php";
  15. // select db ..
  16.  
  17. $result = mysql_query("SELECT avatar FROM user_registration WHERE usuario='".$_SESSION['k_username']."'");
  18.  
  19. if (!$result)
  20.     echo $result['campo_blob']; // ahora se vera como imagen

Asi funciona..... lo he hecho... pero es un "esbozo" para que lo entiendas
__________________
Salu2!
  #3 (permalink)  
Antiguo 17/06/2014, 06:34
Avatar de thepiratebyte  
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: No pedo ver campo blob desde PHP

Cita:
Iniciado por Italico76 Ver Mensaje
O la salvas en un archivo y luego lo muestras ó al leer del campo blob o si quieres mostrarla directamente debes colocar las cabeceras:

Cargas la imagen que ahora es una imagen.php

Código PHP:
Ver original
  1. <img src="imagen.php" />

Aqui tu imagen:

Código PHP:
Ver original
  1. <?php
  2. // archivo: Imagen .php
  3.  
  4.  
  5. header('Content-Type: image/jpeg');  // suponiendo es un jpg
  6.  
  7. if (!isset($_SESSION['k_username']))
  8. {
  9.      // muestro imagen por "defecto"
  10.      $img_default = file_get_contents("imagen_default.jpg");
  11.      echo $img_default;
  12. }
  13.  
  14. include "conexionDB.php";
  15. // select db ..
  16.  
  17. $result = mysql_query("SELECT avatar FROM user_registration WHERE usuario='".$_SESSION['k_username']."'");
  18.  
  19. if (!$result)
  20.     echo $result['campo_blob']; // ahora se vera como imagen

Asi funciona..... lo he hecho... pero es un "esbozo" para que lo entiendas

ME PONE ESTO: Warning: Cannot modify header information - headers already sent by... estuve investignado y decian que era por que tenia que poner los signos de <? que son de abrir los php .. que sean solo uno que habra y otro que cierre pero sigue sin funcionar
  #4 (permalink)  
Antiguo 17/06/2014, 06:55
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: No puedo ver campo blob desde PHP

- Cualquier espacio, tab ... antes de la etiqueta <?php

- Cualquier error, warning........


>> rompe cabeceras y da ese error (lo mas probable sea lo primero) pero verfica tambien que grabes correctamente "without BOM" tu script.
__________________
Salu2!

Etiquetas: php+bd+mysql
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 03:25.