首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用php下载excel文件后,出现错误

使用php下载excel文件后,出现错误
EN

Stack Overflow用户
提问于 2016-11-01 21:10:09
回答 2查看 977关注 0票数 1

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

代码语言:javascript
代码运行次数:0
运行
复制
<?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>
EN

回答 2

Stack Overflow用户

发布于 2016-11-01 21:12:41

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

代码语言:javascript
代码运行次数:0
运行
复制
value="My Tracker.xlsx"

它可能并没有真正下载该文件,因为无法找到它。您应该重命名不带空格的文件。

票数 0
EN

Stack Overflow用户

发布于 2016-11-01 21:14:32

尝试更改内容类型:

代码语言:javascript
代码运行次数:0
运行
复制
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

并添加:

代码语言:javascript
代码运行次数:0
运行
复制
header('Content-Transfer-Encoding: binary');

此示例适用于我:

代码语言:javascript
代码运行次数:0
运行
复制
$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));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40360767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档