通过PHP标题传输Excel()

Excel文件存储在数据库中(以前的二进制数据的十六进制值)。我需要阅读它并使其可供下载。通过PHP标题传输Excel()

下面的代码...

$out = hex2bin($out); // the stuff from the database 

header("Content-Type: application/vnd.ms-excel");

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

header("Content-Disposition: attachment; filename='$filename'");

header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Cache-Control: private",false);

die($out);

其实我得到的东西......它看起来像有轻微差异的原始文件。 当使用十六进制编辑器,它显示

ÐÏࡱá 

代替

ÐÏࡱá 

(看起来像一个额外的选项卡)。所以Excel不能显示表格,而是显示原始数据。

这不是从$out的数据;转换bin2hex(在导入数据库期间)和hex2bin(从数据库导出)没有问题。如果我通过fopen/fwrite将$out写入文件,它就是原始的Excel文件(我可以正常打开)。

我该如何做到这一点?

回答:

确保您在打开<?php标记之前或在关闭?>之后没有此额外制表符。实际上,出于这个原因,完全省略结束标记是一种很好的做法。

以上是 通过PHP标题传输Excel() 的全部内容, 来源链接: utcz.com/qa/259083.html

回到顶部