2012-04-28 55 views
5

Soy nuevo en la programación, solo la estoy aprendiendo en la escuela, pero quiero que mis usuarios descarguen algunos archivos de Excel de mi página de inicio. El siguiente código no funciona, solo lo muestra en el navegador y no obliga a un diálogo de descarga.¿Cómo puedo forzar la descarga de un archivo usando php?

¿Cómo puedo resolver este problema?

El enlace debe ser: http://myurl.com/download.php?fileid=1 o http://myurl.com/download.php?fileid=2 y así sucesivamente.

<?php 
switch ($_GET["fileid"]) { 
    case 0: 
     $file = "files/mon.xls"; 
     break; 
    case 1: 
     $file = "files/uru2.xls"; 
     break; 
    case 2: 
     $file = "files/oppo23.xls"; 
     break; 
} 
readfile($file); 

Gracias por su ayuda!

Respuesta

12

Debes usar el encabezado. Como se puede leer en la php manual, su para su archivo:

<?php 
header('Content-type: application/xls'); 
header('Content-Disposition: attachment; filename="downloaded.xls"'); 
readfile($file); 
5

Hay algunas maneras de hacer esto, pero la forma más sencilla que he encontrado es que sólo tiene que utilizar cabecera. Podrías hacer algo como esto.

header('Location: files/oppo23.xls'); 
Cuestiones relacionadas