ResumePhysicalFileResultExecutor.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. namespace Masuit.Tools.AspNetCore.ResumeFileResults.Executor;
  6. /// <summary>
  7. /// 通过本地文件的可断点续传的FileResult执行器
  8. /// </summary>
  9. internal class ResumePhysicalFileResultExecutor : PhysicalFileResultExecutor, IActionResultExecutor<ResumePhysicalFileResult>
  10. {
  11. /// <summary>
  12. /// 构造函数
  13. /// </summary>
  14. /// <param name="loggerFactory"></param>
  15. public ResumePhysicalFileResultExecutor(ILoggerFactory loggerFactory) : base(loggerFactory)
  16. {
  17. }
  18. /// <summary>
  19. /// 执行Result
  20. /// </summary>
  21. /// <param name="context"></param>
  22. /// <param name="result"></param>
  23. /// <returns></returns>
  24. public virtual Task ExecuteAsync(ActionContext context, ResumePhysicalFileResult result)
  25. {
  26. if (context == null)
  27. {
  28. throw new ArgumentNullException(nameof(context));
  29. }
  30. if (result == null)
  31. {
  32. throw new ArgumentNullException(nameof(result));
  33. }
  34. context.SetContentDispositionHeaderInline(result);
  35. return base.ExecuteAsync(context, result);
  36. }
  37. }