Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- else
- {
- FileInfo file = new FileInfo(filePath);
- long size = (long)file.Length;
- byte[] chunk = new byte[1024 * 1024 * 4]; // ΡΠ°Π½ΠΊ 4MB
- long startPosition = 0;
- int index = 0;
- if (headersDictionary.Keys.Contains("Range:"))
- {
- int.TryParse(headersDictionary["Range:"].Split(new char[] { '=', '-' })[1], out int range);
- startPosition = range;
- }
- if ((size - startPosition) < chunk.Length)
- {
- chunk = new byte[size - startPosition];
- }
- try
- {
- using(var fileStream = File.OpenRead(filePath))
- {
- fileStream.Position = startPosition;
- var chunkSize = fileStream.Read(chunk, index, chunk.Length);
- Console.WriteLine(chunk.Length);
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex);
- }
- byte[] httpHeadersBytes = Encoding.UTF8.GetBytes(
- "HTTP/1.1 206 Partial Content\r\n" +
- $"Content-Length: {file.Length}\r\n" +
- "Accept-Ranges: bytes\r\n" +
- $"Content-Range: bytes {startPosition} - {file.Length - 1} / {file.Length}\r\n" +
- $"Content-Type: video/webm\r\n\r\n");
- byte[] httpResponseBytes = httpHeadersBytes.Concat(chunk).ToArray();
- writer.BaseStream.Write(httpResponseBytes, 0, httpResponseBytes.Length);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement