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

Как правильно выдать пользователю на загрузку экспортированный 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, но опять же там тоже используются хэдеры.
  • Вопрос задан
  • 323 просмотра
Подписаться 3 Средний 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@BI0R0B0T
Используйте буферизацию - тогда вы сможете управлять потоком хедеров
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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