streamToResponse method
Streams this file to the current HTTP response.
Range requests are supported by default, which is especially useful for browser media playback and seeking.
Parameters:
request: The active request whose response will receive the file.handleRange: Whether to honorRangeheaders. Defaults totrue.
Example:
final file = await request.form().file('video');
if (file != null) {
await file.streamToResponse(request);
}
Implementation
Future<void> streamToResponse(HttpRequest request, {bool handleRange = true}) async {
final totalLength = await length;
final bytes = await _cachedBytes;
// Check for range requests (important for media playback)
final rangeHeader = request.headers[HttpHeaders.rangeHeader];
if (handleRange && rangeHeader != null && rangeHeader.isNotEmpty) {
await _handleRangeRequest(request, bytes, totalLength, rangeHeader.first);
} else {
await _sendFullFile(request, bytes, totalLength);
}
}