Ребята, подскажите, пожалуйста.
Работаю в PHPExcel и никак не могу сделать сохранение файла в браузере. Т.е. я обрабатываю файл, в php у меня есть
<a href="Load.php" class="button24">Сформировать отчет</a>
А вот файл load.php (Взял из примера PHPExcel)
<?php
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="simple.xlsx"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
Файл называется simple.xlsx, тот который надо скачать через браузер. Он сформирован нормально и т.п. При попытке запустить - выводит иероглифы типа
PK�zM!��d�� [Content_Types].xml͖_O�0���K_�V@E4D�D���c[����jL����5�z���I;o��qQC��D���b!�]�i$L��3����2n���oT�:Z �h����[��4�ი��]��yN�,ە�>�>�j -' V�)�#��EF^6��n���8q"K��H��>_ׄ����eƏ�<⇄�Ud�v�� T�PK�zMY��%$xl/_rels/workbook.xml.rels��Kn�0�}Oa;���*&��R�-=��C����mԆH���ʚA��Ӱ���9��������RU�l8�O�c��D�$r���!��?c/��c�n4ąHá�v|�Ԕ-�DjD��JºR7t�I4H�8N��g@~�I�}��b�?٪��U�6��7FPc���I!t��ù�\���%�[w/��s���EW� �Ջ���71o�0�%1J�L�h/���7���lc& �Y�0������l|
Подскажите, пожалуйста, как вообще сохранять файл через браузер в PHPExcel? Если есть такая возможность- ещё подскажите, как может можно его и сразу на печать сделать по другой кнопке?
Вариант 1. Попробуйте сохранить сначала на сервере. Возможно файл "бьётся" на моменте скачивания
Вот часть кода из старого проекта, где все работает.
$objWriter = PHPExcel_IOFactory::createWriter($pExcel, 'Excel2007');
$objWriter->save('files/'.$_SESSION['session_username'] . date('His') .'simple.xlsx');
Вариант 2. Перед сохранением вызовите ob_end_clean()
Вариант 3. Проблема в кодировке. Сохраните файл в UTF-8 with BOM либо просто UTF-8
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости