Получение Safari для записи правильного FileName - PullRequest
0 голосов
/ 15 сентября 2011

Я создаю веб-приложение с PHP, которое использует Excel Writer (XML) для PHP , чтобы создать файл Excel, который пользователь может загрузить.Я взглянул на исходный код библиотеки, и все, что он делает, это выводит сгенерированный XML на стандартный вывод.Хотя генерируемый файл является файлом XML, я специально присваиваю ему имя с расширением «.xls», чтобы после его загрузки конечный пользователь мог дважды щелкнуть по нему и запустить Excel в своей системе и открыть файл.успешно.

Это работает правильно при загрузке файла с Firefox, Chrome и IE, но не с Safari.Например, если я задаю имя файла «File.xls», это имя файла, который загружается.Но в Safari имя файла заканчивается как «File.xls.xml».

Сервер работает под управлением Apache в Mac OS X. Я подумал, что это может иметь значение, так как я предполагаю, что проблема должнаделать с MIME-типами на сервере, но я совсем не уверен.Возможно, я могу что-то сделать со ссылкой, которая появляется на странице, или мне нужно отредактировать файл конфигурации для Apache?Любая помощь приветствуется.

1 Ответ

0 голосов
/ 15 сентября 2011

Возможно, вы правы, это может быть просто MIME-тип, который нужно настроить.

Попробуйте поставить

header("Content-Type: application/vnd.ms-excel");

перед выходным кодом, это должно заставить браузер видеть данные в виде файла Excel.

Если код уже устанавливает Content-Type и он конфликтует, найдите в скрипте «Content-Type» и попробуйте изменить его.

Кроме того, если это файл XLSX, то существует другой тип MIME - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

...