PHPExcel устанавливают определенные заголовки для формата файла

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

для, например.

Для Типа "Excel5" заголовки:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=$filename");
header("Content-Transfer-Encoding: binary ");

Для Типа "Excel2007" заголовки:

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="myfile.xlsx"');
header('Cache-Control: max-age=0');

Мой вопрос: там нужно, должен настроить различные заголовки для каждого типа файла, поскольку существуют другие типы файлов также CSV, HTML и PDF?

8
задан pnuts 4 September 2015 в 02:33
поделиться

1 ответ

header("Pragma: public");

Нет - это просто неправильно - хотя многие люди думают, что это как-то связано с кешированием

header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

Ничего общего с Excel - они просто управляют кешированием

header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;

Нет - должен быть только заголовок типа содержимого. Для файла MS Excel, использующего OLE, тип mime должен быть application / vnd.ms-excel

. Только второй заголовок выше является допустимым типом mime.

header("Content-Disposition: attachment;filename=$filename");
header("Content-Transfer-Encoding: binary ");

Второй заголовок является избыточным, первый указывает имя файла для загрузки.

Content-Type: application / vnd.openxmlformats-officedocument.spreadsheetml.sheet ');

Только для файла .xlsx (т. Е. Сохраненного в XML). В противном случае вам следует использовать application / vnd.ms-excel. Действительно, последний должен быть обратно совместимым.

Мой вопрос: нужно ли настраивать разные заголовки для каждого типа файла

Да - заголовок Content-Type является типом файла. Но нужно изменить только этот заголовок.

С.

12
ответ дан 5 December 2019 в 14:02
поделиться
Другие вопросы по тегам:

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