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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽