Задать вопрос
@syltan-yragan

Генерация xls (excel) файлов в PHP через Spreadsheet_Excel_Writer. Почему вместо скачивания получаю содержимое файла?

Добрый день.
Генерирую файл экспорта, содержимое собирается правильно, но сам файл не отдаётся, вместо этого получаю код содержимого, если через ctrl+s сохранить в формате xls, то excel откроет на ура, но мне нужно получать именно файл

Заголовки стандартные для библиотеки

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Pragma: public");

Пробовал из статьи Хабра
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));

результат тот же.
Хостинг timeweb, shared.
В немного другой проект скопировал библиотеки Spreadsheet всё работает как надо, там VDS.
Есть мысли, что не так?
  • Вопрос задан
  • 896 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@syltan-yragan Автор вопроса
подключить другой модуль. Вышло быстрее, спасибо всем за помощь
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
WarGot
@WarGot
В htaccess указать
AddType application/octet-stream .xls
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
// заставляем браузер показать окно сохранения файла
     header('Content-Description: File Transfer');
     header('Content-Type: application/octet-stream');
     header('Content-Disposition: attachment; filename=' . basename($savefile));
     header('Content-Transfer-Encoding: binary');
     header('Expires: 0');
     header('Cache-Control: must-revalidate');
     header('Pragma: public');
     header('Content-Length: ' . filesize($file));
Ответ написан
Ваш ответ на вопрос

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

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