$this->getResponse()->setHeader('Content-Type', 'application/xml');
$this->getResponse()->setHeader('Content-Disposition', 'attachment; filename="file.xml"');
В общем не суть важно, что оправляю инструментами маженты.. Респонз формируется на лету, тянутся данные из базы.
Проблема следующая. Когда формируется xml'ка, используются длинные строки, порядка 1к символов (описание). В один из моментов отправка xml'ки прирывается и отправляется недоделанный файл. Причем чем длиннее эти строки, тем короче получается результирующий файл.
Ощущение, что существует какой-то лимит, который забивается при составлении файла из больших строк. Основные настройки пхп я поковырял, но нет эффекта.
Подскажите как быть? В логах пустота.
Спустя 4 часа, 34 минуты, 11 секунд (23.04.2012 - 16:58) vagrand написал(а):
max_execution_time какое у вас?
Спустя 12 часов, 57 минут, 20 секунд (24.04.2012 - 05:56) enRai написал(а):
max_execution_time ставил на 1024, эффект один, результирующий файл получается 12кб, хотя должен быть больше полу мегабайта.
Также пробовал выводить файл напрямую, без инструментов маженты (просто header и echo), результирующий файл стал больше, но все-равно режется.
Причем еще есть особенность. Если резать эти длинные строки, то обрыв файла происходит позже, а если урезать строку вообще до 100 символов, то файл выдается целеньким. Мемлимит ставил на пол гига, тоже не помогает.
Также пробовал выводить файл напрямую, без инструментов маженты (просто header и echo), результирующий файл стал больше, но все-равно режется.
Причем еще есть особенность. Если резать эти длинные строки, то обрыв файла происходит позже, а если урезать строку вообще до 100 символов, то файл выдается целеньким. Мемлимит ставил на пол гига, тоже не помогает.
Спустя 2 часа, 32 минуты, 4 секунды (24.04.2012 - 08:28) vagrand написал(а):
Покажите весь ваш скрипт, а не только отдачу заголовков
Спустя 6 часов, 46 минут, 45 секунд (24.04.2012 - 15:14) I++ написал(а):
http://php.net/manual/ru/function.ob-end-flush.php
Режется потому что:
Читаем файл -> пытаемся вывести в браузер -> попадаем в буфер -> читаем файл -> пытаемся вывести в браузер -> скрипт прочитал все данные -> выход -> данные потерялись.
И так будет в любом случае при условии: Скорость скачки у клиента ниже чем скорость передачи у сервера или включена буферизация вывода
Режется потому что:
Читаем файл -> пытаемся вывести в браузер -> попадаем в буфер -> читаем файл -> пытаемся вывести в браузер -> скрипт прочитал все данные -> выход -> данные потерялись.
И так будет в любом случае при условии: Скорость скачки у клиента ниже чем скорость передачи у сервера или включена буферизация вывода