使用php下载excel文件后,它给出了错误

时间:2016-11-01 13:10:09

标签: php excel

我在这里制作了一个文件下载程序我正在下载成功下载的excel文件但是当我打开文件时它给了我下面提到的错误  Excel无法打开该文件,因为文件格式或文件扩展名无效,这里的内容是什么

<?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>

2 个答案:

答案 0 :(得分:0)

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

value="My Tracker.xlsx"

由于缺乏能够找到它,它可能实际上并没有下载文件。您应该在没有空格的情况下重命名文件。

答案 1 :(得分:0)

尝试更改内容类型:

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));