2013-07-02 1 views
0

Существует проблема с этим выходом. Когда пользователь нажимает кнопку, он должен выплюнуть лист excel. Однако для некоторых пользователей он выплескивает HTML-страницу. У меня такое чувство, что оно имеет какое-то отношение к другим пользователям, имеющим IE7 вместо IE10. Однако эта функция должна работать для обоих.PHP Что не так с типом MIME для экспорта листа Excel?

Пожалуйста, помогите.

Позвольте мне знать, если вы можете обнаружить ошибку:

$time = time(); 
$illegals = array('!', '*', "'", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]", "\""); 
if(isset($_GET['ns_title'])) {$filename = str_replace($illegals,"",urldecode($_GET['ns_title'])).".xls"; } else { $filename = "myreport$time.xls"; } 
header("Content-type: application/force-download"); 
header("Content-Transfer-Encoding: Binary");  
header("Content-type: application/octet-stream"); 
header('Content-Disposition: attachment; filename="'.$filename.'"'); 
header("Expires: 0"); 

print "$headers\n$data"; 
+0

, что находится в '$ headers' и' $ переменных data'? – Pitchinnate

+0

Возможно ли это через соединение ssl? –

ответ

0

Вы указываете два типа Content-type-х - торчат с application/octet-stream или поставить фактический Excel тип содержимого (см ответ Бастьен в).

Во-вторых, что такое $headers и $data? Предположим, вы используете тех, кто думает, что они устанавливают заголовки, - но header() уже делает это.

Вы можете использовать readfile($filename), если это настоящий файл или просто эхо-контент, который вы хотите запустить загрузку браузера.

+0

Я предполагаю, что $ headers - это строка tsv, содержащая набор заголовков столбцов, а $ data - это строка с несколькими строками, содержащая данные для записи –

+0

. Заголовки $ и $ data являются глобальными переменными, вызываемыми с сеансовой страницы , Я не думаю, что они вносят свой вклад в проблему экспорта, но опять же, я здесь, прося о помощи. – HoodCoderMan

+0

Я также попытался использовать это: header («Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet»); – HoodCoderMan

0

попробовать этот официальный MIME тип application/vnd.ms-excel

+0

Я обновил свой ответ –