Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2008, 03:37
xamamo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 7 meses
Puntos: 1
Problema al abrir un campo blob con php

Hola, me pasa una cosa muy curiosa, tengo un campo blob en base de datos mysql que guardia archivos .doc y .pdf. Desde la web cuando le doy a ver un documento y es .doc va perfecto tanto si le doy a abrir directamente como si guardo localmente y luego lo abro. En cambio cuando se trata de un .pdf si le doy directamente a abrir me da el siguiente mensaje de error:
"Error al abrir el archivo. El documento no se encuentra".
Y si le doy a guardar localmente y luego lo abre funciona correctamente por lo que deduzco que el archivo está bien.
Pero aún hay más, me acabo de dar cuenta de que pasa este error si lo abro con explorer, si lo abro con firefox no pasa.... les pego el código php que abre el campo blob:
Código PHP:
<?php
    session_start
();
    
ini_set("include_path"$_SESSION['ipath']);

    
$id $_REQUEST["id_fichero"];
  
    
$enlace mysql_connect ("xxxx.com""xxxx_xxxb""****") or die ('I cannot connect to the database because: ' mysql_error());
    
mysql_select_db ("ceesib_ceesibdb");
     
    
// Realizar una consulta SQL
    
if (isset($_REQUEST["imagen"]))
        
$consulta "SELECT nombre, tipo, size, contenido FROM ceesib_imagen WHERE Id="$id;
    else
        
$consulta "SELECT nombre, tipo, size, contenido FROM ceesib_fichero WHERE Id="$id;
        
    
$resultado mysql_query($consulta);
    while(
$datos_fichero mysql_fetch_array($resultado))
    {
        
$nombre $datos_fichero["nombre"];    
        
$tipo $datos_fichero["tipo"];
        
$size $datos_fichero["size"];  
        
$contenido $datos_fichero["contenido"];
    }
    
header("Content-type: " $tipo );
    
header("Content-length: "$size);
    
header("Pragma: no-cache");
    if (
strstr($tipo"image")){   
        
header("Content-Disposition: inline; filename=\""$nombre ."\"");
    } else { 
        
header("Content-Disposition: attachment; filename=\""$nombre ."\"");
    } 
        
   
        print 
$contenido;
    
    unset(
$contenido); 
?>
Haber si se les ocurre algo por que yo lo he mirado y requetemirado y no veo el error... Gracias anticipadas...!!!!