Выход PHPExcel

Я использую PHPExcel для вывода файла Excel для пользователей. Я вставил код в следующем.

 public function outPut($name=null)
{
if(is_null($name)) $name = $this->setName();

ob_end_clean();
header("Content-Type:application/force-download");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$name.'.xlsx"');
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
$objWriter = \PHPExcel_IOFactory::createWriter($this->phpExcel, 'Excel2007');
$objWriter->save('php://output');

}

Проблема в том, что файл, загруженный с идентификатора браузера, поврежден, и я не могу его открыть.
Но если я добавлю выход в конце , все хорошо

public function outPut($name=null)
{
if(is_null($name)) $name = $this->setName();

ob_end_clean();
header("Content-Type:application/force-download");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$name.'.xlsx"');
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
$objWriter = \PHPExcel_IOFactory::createWriter($this->phpExcel, 'Excel2007');
$objWriter->save('php://output');
exit;   // works well
}

Я предполагаю, что это что-то вроде буферизации вывода, поэтому кто-нибудь может дать мне указание найти причину.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]