using (var stream = File.OpenRead(temp))
{
byte[] buffer = new byte[Math.Min(2048, stream.Length)];
Response.AddHeader("Content-Length", stream.Length.ToString());
int count = 0;
while((count = stream.Read(buffer, 0, buffer.Length)) > 0)
{
Response.OutputStream.Write(buffer, 0, count);
}
}