使用PHP下载Excel文件后,它给错误

我在这里做了一个文件下载器,我正在下载成功下载的Excel文件,但是当我打开文件,它给了我下面提到的错误Excel无法打开文件,因为文件格式或文件扩展名是无效的什么是worng在这里

<?php if (isset($_POST['file_name'])) { $file_name = $_POST['file_name']; header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.$file_name.'"'); readfile('mystery_folder/'.$file_name); exit(); } ?> <form action="indexa.php" method="post" name="downloadform"> <input name="file_name" value="My Tracker.xlsx" size="50" type="text"> <input type="submit" value="Download"> </form> 

在文件名中使用空格不是一个好主意:

 value="My Tracker.xlsx" 

这可能不是真的下载文件,因为缺乏能够find它。 您应该重命名没有空间的文件。

尝试更改Content-type:

 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

并添加:

 header('Content-Transfer-Encoding: binary'); 

这个样本适合我:

 $file = 'sample.xlsx'; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); readfile(sprintf('./%s', $file));