Safari, игнорирующий тип пантомимы - PullRequest
2 голосов
/ 25 мая 2011

В следующем фрагменте страницы JSP показаны настройки «content-type» и «content-disposition».Страница должна предоставить пользователю HTML-таблицу, которую можно импортировать в Excel.

Chrome, Firefox, IE работают должным образом с настройками, показанными ниже.Safari в OS X Snow Leopard добавляет .html к загруженному файлу, в результате чего report.xls.html.Есть ли способ обойти Safari?

<%@ page session="false" contentType="application/vnd.ms-excel;charset=utf-8"%>
...
<meta name="content-type" content="application/vnd.ms-excel;charset=utf-8"></meta>
<meta name="content-disposition" content="attachment; filename=report.xls">

Ответы [ 3 ]

1 голос
/ 10 августа 2012

Добавление кавычек вокруг имени файла исправило для меня в Safari / PHP.

1 голос
/ 04 декабря 2012

Это сработало для меня, чтобы заставить сафари вести себя:

@ob_end_clean(); //turn off output buffering to decrease cpu usage

// required for IE
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');

header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="download.csv"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');

header('Cache-control: no-cache, pre-check=0, post-check=0');
header('Cache-control: private');
header('Pragma: private');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // any date in the past

Взято из Защищенная от дурака, кросс-браузерная принудительная загрузка в PHP - вопросы задаются немного иначеразные вещи, но ответы могут быть достаточно похожими, чтобы пометить это как дубликат ...

1 голос
/ 25 мая 2011

Я отправляю эти заголовки и для csv-файла, и сафари загружает его как report.csv

Pragma: public
Expires: 0
Cache-Control: must-revalidate, post-check=0, pre-check=0
Cache-Control: private
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="report.csv";
Content-Transfer-Encoding: binary
...