• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

通过PHP标题传输Excel()

php 来源:user2432939 5次浏览

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标记之前或在关闭?>之后没有此额外制表符。实际上,出于这个原因,完全省略结束标记是一种很好的做法。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)