BaseEmbeddedResourceHandler.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.IO;
  3. namespace MediaBrowser.Common.Net.Handlers
  4. {
  5. public abstract class BaseEmbeddedResourceHandler : BaseHandler
  6. {
  7. public BaseEmbeddedResourceHandler(string resourcePath)
  8. : base()
  9. {
  10. ResourcePath = resourcePath;
  11. }
  12. protected string ResourcePath { get; set; }
  13. public override string ContentType
  14. {
  15. get
  16. {
  17. string extension = Path.GetExtension(ResourcePath);
  18. if (extension.EndsWith("jpeg", StringComparison.OrdinalIgnoreCase) || extension.EndsWith("jpg", StringComparison.OrdinalIgnoreCase))
  19. {
  20. return "image/jpeg";
  21. }
  22. else if (extension.EndsWith("png", StringComparison.OrdinalIgnoreCase))
  23. {
  24. return "image/png";
  25. }
  26. else if (extension.EndsWith("ico", StringComparison.OrdinalIgnoreCase))
  27. {
  28. return "image/ico";
  29. }
  30. else if (extension.EndsWith("js", StringComparison.OrdinalIgnoreCase))
  31. {
  32. return "application/x-javascript";
  33. }
  34. else if (extension.EndsWith("css", StringComparison.OrdinalIgnoreCase))
  35. {
  36. return "text/css";
  37. }
  38. else if (extension.EndsWith("html", StringComparison.OrdinalIgnoreCase))
  39. {
  40. return "text/html; charset=utf-8";
  41. }
  42. return "text/plain; charset=utf-8";
  43. }
  44. }
  45. protected override void WriteResponseToOutputStream(Stream stream)
  46. {
  47. GetEmbeddedResourceStream().CopyTo(stream);
  48. }
  49. protected abstract Stream GetEmbeddedResourceStream();
  50. }
  51. }