private function doRangeResponse($range, $fileInfo, Response $response)
{
$this->assignCommonHeaders($fileInfo, $response);
$range->contentType = $mime = $this->selectMimeTypeFromPath($fileInfo->path);
if (isset($range->ranges[1])) {
$response->setHeader("Content-Type", "multipart/byteranges; boundary={$range->boundary}");
} else {
list($startPos, $endPos) = $range->ranges[0];
$response->setHeader("Content-Length", (string) ($endPos - $startPos + 1));
$response->setHeader("Content-Range", "bytes {$startPos}-{$endPos}/{$fileInfo->size}");
$response->setHeader("Content-Type", $mime);
}
$response->setStatus(HTTP_STATUS["PARTIAL_CONTENT"]);
return $this->finalizeResponse($response, $fileInfo, $range);
}