PHPexcel,以及如何下载未损坏的文件?

时间:2012-12-24 10:30:50

标签: php phpexcel

我搜索了几个小时,并仔细阅读了几十页试图找到答案。

我正在使用PHPexcel生成一个电子表格,我将其作为excel 2007 .xlsx文件保存在我的服务器上。如果我直接从服务器下载.xlsx文件并在我的计算机上打开它,它打开正常。没问题。

如果我使用php脚本下载文件(通过readfile()),ms excel会给我一个“此文件已损坏...”消息。

好的,我在两个文件上做了一个hex文件比较,但是没有明显的区别!

这发生在我的ubuntu服务器上(运行php 5.3.2),以及wampserver(运行PHP 5.3.13的Windows 8,64位环境)。

我已经检查了所有内容,以确保在readfile()之前没有发送\ t或\ n或任何其他输出;

我使用了ob_start和ob_end_clean()来确保没有输出。

我没有使用PHP v 5.2.8和错误的php_zip.dll二进制文件。

得到这个!,这太疯狂了。

我甚至使用MS excel程序创建了一个excel文件。文件没有错。我将它直接上传到我的服务器,然后通过链接直接访问它。它下载,当我尝试打开它时,我收到“文件已损坏且无法打开”消息。

如果您想尝试,可以使用以下链接:http://db.doanddare.org/Lyv6r_y7echVnAcUG4fGUw/testing.xlsx

是的,是我刚刚在excel中创建并上传的测试文件的直接链接。这里没有涉及php处理或标题。

Stack Overflow是我最后的手段!谢谢你的帮助。

哦,我正在使用excel 2013预览版,如果它有用的话......

1 个答案:

答案 0 :(得分:0)

不确定你是否还有这个问题,自从你提出这个问题以来已经两年了,但我遇到了问题,并找到了解决方案:

您需要更改Excel中的设置 - 它为我解决了问题。

  1. 打开Excel。
  2. 点击"文件",然后点击"选项"。
  3. 选择"信任中心",然后选择"信任中心设置"。
  4. 选择"受保护的视图"。
  5. 取消选中"受保护的视图"然后单击"确定"。
  6. 重新启动Excel并尝试打开Excel文档。
  7. (原始来源:Microsoft Excel帮助页面)