fixed Accept-Ranges and Content-Length when requesting partial content

This commit is contained in:
Uwe Steinmann 2021-04-06 22:04:02 +02:00
parent dbe98b3a9d
commit 2ad4d1aac3

View File

@ -646,14 +646,14 @@ function sendFile($filename) { /* {{{ */
} else {
$size = filesize($filename);
header("Content-Length: " . $size);
if (isset($_SERVER['HTTP_RANGE'])) {
$fp = @fopen($filename, 'rb');
$length = $size; // Content length
$start = 0; // Start byte
$end = $size - 1; // End byte
header("Accept-Ranges: 0-$length");
// header("Accept-Ranges: 0-$length");
header("Accept-Ranges: bytes");
$c_start = $start;
$c_end = $end;
@ -688,6 +688,7 @@ function sendFile($filename) { /* {{{ */
fseek($fp, $start);
header('HTTP/1.1 206 Partial Content');
header("Content-Range: bytes $start-$end/$size");
header("Content-Length: " . $length);
$buffer = 1024 * 8;
while(!feof($fp) && ($p = ftell($fp)) <= $end) {
@ -701,6 +702,7 @@ function sendFile($filename) { /* {{{ */
fclose($fp);
} else {
header("Content-Length: " . $size);
/* Make sure output buffering is off */
if (ob_get_level()) {
ob_end_clean();