добрый вечер. Подскажите, у меня на локальном сервере при экспорте excel с сайта была ошибка, файл выходил, но excel его не открывал, ругаясь, что формат не соответствует и т.д. Внутри файла xls выхода вся страница сайта, с меню с данными и т.д. На странице вызова экспорта работает Pjax. помогла функция ob_end_clean . PHP: ob_end_clean(); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename='.$filename .' '); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); Когда всё перенес на хост, всё работает так, как будто эта функция не работает. Тоже самое при экспорте excel. Можно быть нужно какой-то модуль php включить? Но такой информации не могу найти
Можно для ссылки отключить pjax, вызвать sendFile чтобы layout и view не попадало в буфер http://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html Sending Files http://www.yiiframework.com/doc-2.0/guide-runtime-responses.html#sending-files php://memory and php://temp https://php.ru/manual/wrappers.php....n-unknown-unknown-unknown-unknown-descriptios Можно писать в php://temp например, и потом отдать файл или сохранить во временной папке и отдать.
Основной проблемой оказалось отсутствие exit после $objWriter->save('php://output'); Но тогда на странице вывода отображалась дикая кракозябра, а файл сохранялся только если сделать обновление этой страницы. Внесение data-pjax="0"; в ссылку на страницу вывода могло решить эту проблему. Файл стал сразу сохраняться. Но на хосте сказали следующее: Мы отключили функцию PHP output_buffering в файле .htaccess, внеся в него следующую строку: php_flag output_buffering Off Спасибо! PS. остальные предложенные варианты не пробовал.
Да вообще срать на лайки. Никогда тут не было не лайков ничего, сделали эту хуйню, как образин-форум стал.
Больше лайков! Готовлюсь за ранее,увеличиваю обороты. Буду теперь в личные сообщения писать, просить лайки Поддерживаю! Поставь мне лайк.
вот этим словом ты испортил такое классное сообщение. Все могли про тебя думать как про сумасшедшего модератора, который банит за то, что под его сообщением не появилось лайка. Но теперь сообщение попахивает ребяческим задором, и никак не мотивирует тебя лайкать. Эх.
Мне в питере за это устное предупреждение сделали. Было раннее солнечное утро, на улице ни души (я тоже без души, и мусора тоже), на дороге ни машины, просматривается по километру в каждую сторону. Решил перейти. Был остановлен экипажем ППС на разъяснение правил ДД, действующих в северной столице.