Отправка файлов с помощью Apache и PHP virtual() с поддержкой HTTP_RANGE
Я использую функцию PHP virtual() для отправки файлов через Apache 2.2 (она работает быстрее, чем readfile ()), и я могу проверить права доступа пользователя.
Но есть ли способ добавить поддержку непрерывной загрузки с HTTP_RANGE?
Я пробовал такие вещи
if(isset($_SERVER['HTTP_RANGE'])) {
list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
str_replace($range, "-", $range);
$size2=$size-1;
$new_length=$size-$range;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range$size2/$size");
apache_setenv('HTTP_RANGE', $_SERVER['HTTP_RANGE']);
} else {
$size2=$size-1;
header("Content-Range: bytes 0-$size2/$size");
header("Content-Length: ".$size);
}
Таким образом, веб-клиент загружал файлы, как будто HTTP_RANGE работает, но в реальном Apache просто посылает всегда одинаковые диапазоны файлов, как: если клиент запрашивает 4000-6000 байт, Apache отправляет 0-2000 и т. Д., Поэтому файлы были повреждены.
Я думаю, что есть какой-то способ сделать это с помощью apache_setenv, но не могу найти в Google никаких предложений по этому поводу.