TestController.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using Masuit.Tools.AspNetCore.ResumeFileResults.Extensions;
  2. using Masuit.Tools.AspNetCore.ResumeFileResults.ResumeFileResult;
  3. using Microsoft.AspNetCore.Mvc;
  4. using System;
  5. using System.IO;
  6. namespace Masuit.Tools.AspNetCore.ResumeFileResults.WebTest.Controllers
  7. {
  8. /// <summary>
  9. /// 测试控制器
  10. /// </summary>
  11. [Route("file")]
  12. public class TestController : Controller
  13. {
  14. private const string EntityTag = "\"TestFile\"";
  15. private readonly DateTimeOffset _lastModified = new DateTimeOffset(2016, 1, 1, 0, 0, 0, TimeSpan.Zero);
  16. [HttpGet("content/{fileName}/{etag}")]
  17. public IActionResult FileContent(bool fileName, bool etag)
  18. {
  19. var result = this.ResumeFile(System.IO.File.ReadAllBytes(Path.Combine(AppContext.BaseDirectory + "wwwroot", "TestFile.txt")), "text/plain", fileName ? "TestFile.txt" : null, etag ? EntityTag : null);
  20. result.LastModified = _lastModified;
  21. return result;
  22. }
  23. [HttpGet("content/{fileName}")]
  24. public IActionResult FileContent(bool fileName)
  25. {
  26. return new ResumeFileContentResult(System.IO.File.ReadAllBytes(Path.Combine(AppContext.BaseDirectory + "wwwroot", "TestFile.txt")), "text/plain")
  27. {
  28. FileInlineName = "TestFile.txt",
  29. LastModified = _lastModified
  30. };
  31. }
  32. [HttpHead("file")]
  33. public IActionResult FileHead()
  34. {
  35. var result = this.ResumeFile("TestFile.txt", "text/plain", "TestFile.txt", EntityTag);
  36. result.LastModified = _lastModified;
  37. return result;
  38. }
  39. [HttpPut("file")]
  40. public IActionResult FilePut()
  41. {
  42. var result = this.ResumeFile("TestFile.txt", "text/plain", "TestFile.txt", EntityTag);
  43. result.LastModified = _lastModified;
  44. return result;
  45. }
  46. [HttpGet("stream/{fileName}/{etag}")]
  47. public IActionResult FileStream(bool fileName, bool etag)
  48. {
  49. var stream = System.IO.File.OpenRead(Path.Combine(AppContext.BaseDirectory + "wwwroot", "TestFile.txt"));
  50. var result = this.ResumeFile(stream, "text/plain", fileName ? "TestFile.txt" : null, etag ? EntityTag : null);
  51. result.LastModified = _lastModified;
  52. return result;
  53. }
  54. [HttpGet("stream/{fileName}")]
  55. public IActionResult FileStream(bool fileName)
  56. {
  57. var stream = System.IO.File.OpenRead(Path.Combine(AppContext.BaseDirectory + "wwwroot", "TestFile.txt"));
  58. return new ResumeFileStreamResult(stream, "text/plain")
  59. {
  60. FileInlineName = "TestFile.txt",
  61. LastModified = _lastModified
  62. };
  63. }
  64. [HttpGet("physical/{fileName}/{etag}")]
  65. public IActionResult PhysicalFile(bool fileName, bool etag)
  66. {
  67. var result = this.ResumePhysicalFile(Path.Combine(AppContext.BaseDirectory + "wwwroot", "TestFile.txt"), "text/plain", fileName ? "TestFile.txt" : null, etag ? EntityTag : null);
  68. result.LastModified = _lastModified;
  69. return result;
  70. }
  71. [HttpGet("physical/{fileName}")]
  72. public IActionResult PhysicalFile(bool fileName)
  73. {
  74. return new ResumePhysicalFileResult(Path.Combine(AppContext.BaseDirectory + "wwwroot", "TestFile.txt"), "text/plain")
  75. {
  76. FileInlineName = "TestFile.txt",
  77. LastModified = _lastModified
  78. };
  79. }
  80. [HttpGet("virtual/{fileName}/{etag}")]
  81. public IActionResult VirtualFile(bool fileName, bool etag)
  82. {
  83. var result = this.ResumeFile("TestFile.txt", "text/plain", fileName ? "TestFile.txt" : null, etag ? EntityTag : null);
  84. result.LastModified = _lastModified;
  85. return result;
  86. }
  87. [HttpGet("virtual/{fileName}")]
  88. public IActionResult VirtualFile(bool fileName)
  89. {
  90. return new ResumeVirtualFileResult("TestFile.txt", "text/plain")
  91. {
  92. FileInlineName = "TestFile.txt",
  93. LastModified = _lastModified
  94. };
  95. }
  96. }
  97. }