通过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