[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Режется отправляемый файл
enRai
Здравствуйте. В magento пытаюсь отправить пользователю файл:


$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 символов, то файл выдается целеньким. Мемлимит ставил на пол гига, тоже не помогает.

Спустя 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

Режется потому что:

Читаем файл -> пытаемся вывести в браузер -> попадаем в буфер -> читаем файл -> пытаемся вывести в браузер -> скрипт прочитал все данные -> выход -> данные потерялись.

И так будет в любом случае при условии: Скорость скачки у клиента ниже чем скорость передачи у сервера или включена буферизация вывода
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.