如何使用PHP强制文件下载?

5
我刚开始学习编程,正在学校里学习,但我希望用户可以从我的首页下载一些 Excel 文件。以下代码不能正常工作,只在浏览器中显示文件而没有弹出下载对话框。
我该怎么解决这个问题?
链接应该是:http://myurl.com/download.php?fileid=1 或者 http://myurl.com/download.php?fileid=2 等等。
<?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);

感谢您的帮助!
2个回答

12

你需要使用header。就像你可以在PHP手册中阅读的那样,它是用于处理文件的:

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

5

有几种方法可以做到这一点,但我发现最简单的方法是只使用header。你可以尝试以下方法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接