public static HttpRequest EnableRewind(this HttpRequest request, int bufferThreshold = DefaultBufferThreshold, long?bufferLimit = null) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var body = request.RequestStream; if (!body.CanSeek) { var fileStream = new FileBufferingReadStream(body, bufferThreshold, bufferLimit, _getTempDirectory); request.RequestStream = fileStream; request.HttpContext.Response.RegisterForDispose(fileStream); } return(request); }
public static MultipartSection EnableRewind(this MultipartSection section, Action <IDisposable> registerForDispose, int bufferThreshold = DefaultBufferThreshold, long?bufferLimit = null) { if (section == null) { throw new ArgumentNullException(nameof(section)); } if (registerForDispose == null) { throw new ArgumentNullException(nameof(registerForDispose)); } var body = section.Body; if (!body.CanSeek) { var fileStream = new FileBufferingReadStream(body, bufferThreshold, bufferLimit, _getTempDirectory); section.Body = fileStream; registerForDispose(fileStream); } return(section); }