繁体   English   中英

会话处理程序类之后PHPEXCEL导出文件无法正常工作

[英]PHPEXCEL export file is not working after session handler class

index.php包含

 .......
require_once('WABRegistry/helpers/Session_Handler.php');
session_start();
 .......

然后我使用PHPEXCEL:

$objPHPExcel->setActiveSheetIndex(0);

// Save Excel 2007 file
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="polls_results_'.time().'.xlsx"');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->setIncludeCharts(TRUE); //First Sheet Chart
$objWriter->save('php://output');          

我可以看到以下错误消息

问题:当我尝试打开文件时,它在mac上给我错误:

Excel cannot open this file
the file format or file extension is not valid. bla bla 

如果我评论//require_once('WABRegistry/helpers/Session_Handler.php'); 它行得正常

Session_Handler.php包含很多代码,如果需要我会粘贴所有代码

$session = new sessionHandle();
session_set_save_handler(array(&$session,"open"),
                         array(&$session,"close"),
                         array(&$session,"read"),
                         array(&$session,"write"),
                         array(&$session,"destroy"),
                         array(&$session,"gc"));

在文本编辑器中打开Excel文件,查找任何前导或尾随空白字符,或前导BOM表头,或者yoru会话处理程序可能注入输出流的任何明显的明文错误消息

导致此问题的最常见原因是与输出相关的空格(可能在关闭后?> )。

使用输出缓冲,然后在调用save()之前立即丢弃缓冲区是一个常见的工作环境; 但最好解决问题,而不是简单地用输出缓冲隐藏它。 您会注意到没有任何PHPExcel代码有任何结束?>以确保库本身不可能导致此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM