/// <summary> /// Makes sure that buffering is disabled and correct header values are set /// before streaming file data to the client. This method is invoked deferred /// when returning the resource in order to overcome some issues with OpenRasta. /// See the implementation in the handlers and the <see cref="FileDataResource"/>. /// </summary> /// <param name="token"></param> protected void SetResponseHeader(TransferToken token) { if (HttpContext.Current == null) return; //we need to disable buffering and set headers before streaming var resp = HttpContext.Current.Response; resp.BufferOutput = false; resp.AppendHeader("Content-Type", token.ContentType); resp.AppendHeader("Content-Disposition", "inline; filename=" + token.ResourceName); resp.AppendHeader("Content-Length", token.ResourceLength.ToString()); }
public FileDataResource(TransferToken token, Func<Stream> openStreamFunc) { Token = token; OpenStreamFunc = openStreamFunc; }