2

我有一个 xlsb。(ms excel 2007) 文件创建。

我已将其上传到服务器,网站用户可以下载它,但是当用户下载并打开此文件时,ms excel 在单击“是”时提示错误为“Excel 发现不可读的内容”,一切正常。我不知道为什么会显示此错误。

然后我从 gmail 和 yahoomail 发送了这个 xlsb 文件,下载并打开时一切正常,没有任何错误消息。

所以请帮我纠正这个错误。我使用 php 作为我的服务器端语言,下载代码如下

header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    //header('Content-type: application/octet-stream');
    //header('Content-type: application/vnd.ms-excel.sheet.binary.macroEnabled.12');

    header('Content-Disposition: attachment; filename="credit-card-payoff.xlsb"');

    readfile('exporting/excel/credit-card-payoff.xlsb');

我尝试了不同的内容类型,但没有成功。

以下是用户可以下载excel的网页

http://utc.impexdirectory.com/credit-card-payoff-calculator.php

4

1 回答 1

1

我已经检查了您提供的文件,并且可以明确地告诉您错误是什么:当前网站也以某种方式附加到此二进制文件中。(如果我切断 HTML 部分,文件将打开而没有修复对话框)。

所以我最好的猜测是,你忘记了exitreadfile 之后的语句。

您的代码应如下所示:

header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="credit-card-payoff.xlsb"');

readfile('exporting/excel/credit-card-payoff.xlsb');
exit(0); // Terminate the program execution at this point

这可以防止网站被附加到下载文件中。

于 2013-01-24T12:26:34.780 回答