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...