Как установить правильный заголовок Content-Length, когда веб-сервер автоматически сжимает выходные данные? - PullRequest
1 голос
/ 18 февраля 2010

После моего предыдущего вопроса , в котором, я думаю, я сузил свою проблему до узкого места:

Как установить правильное значение для заголовка Content-Length для загружаемого файла из PHP, когда веб-сервер (apache) автоматически сжимает выходной файл впоследствии?

Я ищу наиболее надежное / универсальное решение. Я не очень хорошо осведомлен о сжатии вывода, но я предполагаю, что apache имеет несколько алгоритмов сжатия, которые он может использовать (gzip и т. Д.). Итак, как изнутри PHP, как я могу автоматически определить, какое сжатие использует веб-сервер, и как я могу использовать это, чтобы установить правильное значение заголовка Content-Length для размера файла файла (после его сжатия)?

Ответы [ 3 ]

5 голосов
/ 18 февраля 2010

Вам не нужно указывать Content-Length , Apache сделает это за вас.

0 голосов
/ 18 февраля 2010

Ладно, ситуация здесь - вы загружаете файл.Могу поспорить, что файл уже сжат, чтобы сэкономить некоторую пропускную способность.

В любом случае, если на вашем сервере какое-либо сжатие активно, это нехорошо, поскольку он тратит время впустую, так как сервер не может добиться лучшего сжатия,поэтому, чтобы ускорить это, вы должны отключить сжатие вывода для любой загрузки файла.

попробуйте из них:

apache conf
Отключить mod_deflate

php.ini
output_buffering = Off
output_handler =
zlib.output_compression = Off

0 голосов
/ 18 февраля 2010

Может быть ответ Клетуса в , этот вопрос помогает.

Кроме того, вы уверены, что хотите показывать свои загрузки с помощью gzip? Zipping имеет смысл для HTML, CSS и JS-содержимого, но при больших загрузках файлов я бы отключил его.

...