背景
我正在生成一个通过电子邮件发送到某个地址的 Excel 工作表。它在本地主机上完美运行(完美保存,无法测试邮件,因为我没有运行本地邮件服务器)。当我托管它时,我遇到了一些问题。
什么问题
我把它缩小到这一行:
$this->PhpExcel->saveToDisk($path);
$path
是在运行时设置的自定义路径。当我运行它时,它会将文件保存到磁盘,但它给了我这个:
这是自定义助手类中的一个函数。下面是该函数的代码:
public function saveToDisk($path) {
// set layout
$this->_View->layout = '';
// headers
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
// writer
$objWriter = PHPExcel_IOFactory::createWriter($this->xls, 'Excel2007');
ob_end_clean();
$objWriter->save($path);
// clear memory
$this->xls->disconnectWorksheets();
}
但这就是问题所在。当我将它输出到浏览器时,通过更改$objWriter->save($path);
它$objWriter->save('php://output');
不会给我任何错误并完美地导出文件。
问题
我已经用谷歌搜索了错误并尽力找到解决方案,但无济于事。有关此错误的可用信息量非常稀少或过时。有人可以告诉我我错过了什么或做错了什么吗?