ResumeFileStreamResultExecutor.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Masuit.Tools.AspNetCore.ResumeFileResults.Extensions;
  2. using Masuit.Tools.AspNetCore.ResumeFileResults.ResumeFileResult;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.AspNetCore.Mvc.Infrastructure;
  5. using Microsoft.Extensions.Logging;
  6. namespace Masuit.Tools.AspNetCore.ResumeFileResults.Executor;
  7. /// <summary>
  8. /// 可断点续传的FileStreamResult执行器
  9. /// </summary>
  10. internal class ResumeFileStreamResultExecutor(ILoggerFactory loggerFactory) : FileStreamResultExecutor(loggerFactory), IActionResultExecutor<ResumeFileStreamResult>
  11. {
  12. /// <summary>
  13. /// 执行Result
  14. /// </summary>
  15. /// <param name="context"></param>
  16. /// <param name="result"></param>
  17. /// <returns></returns>
  18. public virtual Task ExecuteAsync(ActionContext context, ResumeFileStreamResult result)
  19. {
  20. if (context == null)
  21. {
  22. throw new ArgumentNullException(nameof(context));
  23. }
  24. if (result == null)
  25. {
  26. throw new ArgumentNullException(nameof(result));
  27. }
  28. context.SetContentDispositionHeaderInline(result);
  29. return base.ExecuteAsync(context, result);
  30. }
  31. }