Задать вопрос

Как правильно выдать пользователю на загрузку экспортированный excel файл из PHP?

Здравствуйте. Нужно сделать экспорт сформированной таблицы на PHP в excel файл. Сохраняться она сохраняется на сервер, если делаю так:
$objWhriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
$excel_name = $i[3] . '-' . $i[4] . '-' . $_SESSION['graphName'] . '.xlsx';
$objWhriter->save('gra/' . $excel_name);

Но мне нужно отдать файл на загрузку пользователю. Делаю таким образом:
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myfile.xls"');
header('Cache-Control: max-age=0');
$objWhriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
$excel_name = $i[3] . '-' . $i[4] . '-' . $_SESSION['graphName'] . '.xlsx';
$objWhriter->save('php://output');

Но ничего не выводит, так используются хэдеры. А у меня на каждой странице стартуется сессия, для проверки авторизации пользователя. Как в данном случае поступить? Думал сначала сохранять файл на сервер, а потом отдавать его пользователю через readfile, но опять же там тоже используются хэдеры.
  • Вопрос задан
  • 311 просмотров
Подписаться 3 Средний 5 комментариев
Решения вопроса 1
@BI0R0B0T
Используйте буферизацию - тогда вы сможете управлять потоком хедеров
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы