Загрузка счетов (PDF) не завершена - PullRequest
1 голос
/ 18 декабря 2009

У нас есть сайт magento commerce, работающий на сервере IIS 6.0 с PHP 5.2.11 под управлением magento.

Всякий раз, когда пользователь пытается использовать распечатку для загрузки pdf на свой компьютер из панели администратора, загрузка не завершается. Я вижу, что полный файл загружен на компьютер, но браузер продолжает повторять, что он загружается. Это означает, что файл будет сохранен с .part в конце, и пользователи не смогут открыть файл в формате PDF. Если я удаляю расширение .part, созданное firefox, тогда я могу правильно просмотреть PDF. Это означает, что данные отправляются в браузер с сервера в полном объеме, но загрузка не прекращается.

См. Заголовки ниже в ответе при начале загрузки pdf

HTTP/1.x 200 OK
Cache-Control: must-revalidate, post-check=0, pre-check=0
Pragma: public
Content-Length: 1456781
Content-Type: application/pdf
Content-Encoding: gzip
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Last-Modified: Fri, 18 Dec 2009 10:23:37 +0000
Vary: Accept-Encoding
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET, PHP/5.2.11
Content-Disposition: attachment; filename=invoice2009-12-18_10-23-37.pdf
Date: Fri, 18 Dec 2009 10:23:37 GMT

Я полагаю, это связано с тем, что соединение не закрывается после отправки всего файла? Пожалуйста, помогите!

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 июля 2012

У меня была точно такая же проблема (Apache), я временно решил проблему, отключив сжатие gzip для ответов. Я предполагаю, что размер, сообщаемый браузером Magento (который он получает от вызова strlen () содержимого PDF) в браузер, не отражает реальный размер контента, который браузер получает, учитывая, что он будет сжат позже. Это приводит к тому, что браузер ожидает больше данных, которые никогда не поступят ..

edit: стоит отметить, что в моем случае я шел на сайт через обратный прокси.

1 голос
/ 18 декабря 2009

Вы пытались явно вызвать exit; после вывода данных в формате PDF. Звучит как вещь IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...