Files
Disco/Disco.Web.Extensions/MvcExtensions/File/FileContentSpanResult.cs
T
2025-07-20 11:39:42 +10:00

35 lines
1.0 KiB
C#

using System;
using System.Web;
using System.Web.Mvc;
namespace Disco.Web.Extensions
{
public class FileContentSpanResult : FileResult
{
public byte[] FileBuffer { get; private set; }
public int Start { get; private set; }
public int Length { get; private set; }
public FileContentSpanResult(byte[] fileBuffer, int start, int length, string contentType) : base(contentType)
{
if (fileBuffer == null)
throw new ArgumentNullException(nameof(fileBuffer));
if (start < 0 || start >= fileBuffer.Length)
throw new ArgumentOutOfRangeException(nameof(start));
if (start + length > fileBuffer.Length)
throw new ArgumentOutOfRangeException(nameof(length));
FileBuffer = fileBuffer;
Start = start;
Length = length;
}
protected override void WriteFile(HttpResponseBase response)
{
response.OutputStream.Write(FileBuffer, Start, Length);
}
}
}