pues yo estoy manejando este codigo, aunque no es perfecto del todo porque cuando sale el cuadro de dialogo abrir / guardar, no funciona con abrir directamente, en cambio con guardar si... porque? no se...
Código PHP:
<?
//seguridad
include ("include/checkuser.php");
?>
<?
//me conecto a la base de datos
include ("../include/conex.php");
$idinforme = $_GET[idinforme];
//Sentencia sql (sin limit)
$_pagi_sql = "SELECT * FROM $tablainformes WHERE idinforme = $idinforme";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 30;
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("../include/paginator.inc.php");
while ($registros=mysql_fetch_array($_pagi_result)){
$idinforme = $registros[idinforme];
$archivo = $registros[file_es];
}
//ruta directorio donde se almacenan todos los files
$path = "../informes/";
//compongo el camino + el nombre del archivo
$compuesto ="$path/$archivo";
$filename="$archivo";
header ("Pragma: no-cache");
header ("Expires: 0");
header ("Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0");
header ("Content-type: application/force-download");
header ("Content-Disposition: attachment; filename=$filename");
readfile($compuesto);
?>