PHP强制下载.xlsx文件损坏

我正在建立一个网站,允许教师上传文件,学生下载文件.但是,有一个问题. Microsoft Word(.docx)文件下载完美,但下载excel(xlsx)文件时,excel会显示“此文件已损坏且无法打开”对话框.任何有关这方面的帮助将不胜感激!

我的下载代码如下:

case 'xlsx':

    header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Pragma: no-cache');
    readfile('./uploads/resources/courses/' . $filename);

break;

解决方法:

这在我的本地xampp设置上运行正常,无论扩展如何,所以从我的角度来看,除非我遗漏了某些内容,否则不需要大小写声明

我用docx,accdb,xlsx,mp3,任何东西进行了测试……

$filename = "equiv1.xlsx";

header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Pragma: no-cache');
上一篇:PHP强制下载远程文件而不读入内存


下一篇:如何在django / python中读取日志文件后保持数据格式化