Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2009, 12:58
leinad256
 
Fecha de Ingreso: septiembre-2002
Ubicación: Mexico
Mensajes: 142
Antigüedad: 21 años, 8 meses
Puntos: 0
header() + IE6 + open file = error

Bueno, tengo un problema minúsculo pero me está dando mucha lata con el cliente...

Hice una aplicación la cual son unos formularios con capacidad de archivos anexos... toda está información la guardo en una DB y el archivo anexo lo renombro a 1, 2, 3, 4, 5, 6, 7...etc, dependiendo el registro de la DB y sin extensión.

Por otro lado, tengo mi administrador... ve los registros y descarga archivos. El problema es cuando se descargan archivos... se debe dar Save As y después abrir el archivo porque si se le da clic en Open File me manda un error de que no se encontró el archivo en la carpeta temporal... esto me sucede con IE6 y creo que también pasa con IE7 (ni con IE8 ni el resto de los navegadores sucede, el problema es con IE6).

Bueno, dirán... dile a tu cliente que actualice. Desafortunadamente es una app para intranet y tienen políticas de esas que por milagro no los hacen utilizar IE4 o Netscape 3 (casi casi Mosaic).

Este es mi código:

Código PHP:
        $result $this->conn->sql("SELECT * FROM file_table WHERE intid LIKE ".$id.";");
        
$data =$this->conn->object($result);
        
        
$mime mime_content_type($data['strname']);

        
header("Content-type: ".$mime);
        
header("Content-Disposition: attachment; filename=".$data['strname']."");
        
header("Content-Transfer-Encoding: binary");
        
header('Content-Length: ' filesize("files/".$id));        

        
readfile("files/".$id);
        exit(); 

Simplemente no he encontrado la solución... por cierto, averiguo el mime type en base a la extensión del archivo usando una función de reemplazo de mime_content_type, dado que el servidor windows no tiene instalada las librerías de mime type...
__________________
www.subflash.com <-----visita