Kaynağa Gözat

match mime by extension

HOME 2 yıl önce
ebeveyn
işleme
13de022750

+ 24 - 8
FNZCM/FNZCM.ConHost/Ver2/Program2.cs

@@ -529,15 +529,31 @@ namespace FNZCM.ConHost.Ver2
                 }
                 else if (PathMapping.TryGetValue(requestPath, out var realPath))
                 {
-                    switch (pathParts.FirstOrDefault())
+                    var ext = requestPath.Split('.').LastOrDefault()?.ToLower();
+
+                    switch (ext)
                     {
-                        default: context.Response.ContentType = "video/mp4"; break;
-                        //case "media":
-                        //    context.Response.ContentType = $"audio/{requestPath?.Split('.').LastOrDefault() ?? "flac"}";
-                        //    break;
-                        case "cover":
-                        case "bk":
-                            context.Response.ContentType = $"image/{requestPath?.Split('.').LastOrDefault() ?? "jpg"}";
+                        case "flac": context.Response.ContentType = "audio/flac"; break;
+                        case "m4a": context.Response.ContentType = "audio/mp4"; break;
+                        case "mp3": context.Response.ContentType = "audio/mpeg"; break;
+                        case "aac": context.Response.ContentType = "audio/aac"; break;
+
+                        case "mp4": context.Response.ContentType = "video/mp4"; break;
+                        case "mkv": context.Response.ContentType = $"video/webm"; break;
+
+                        case "jpg":
+                        case "jpeg": context.Response.ContentType = $"image/jpeg"; break;
+                        case "png": context.Response.ContentType = $"image/png"; break;
+                        case "bmp": context.Response.ContentType = $"image/bmp"; break;
+
+                        default:
+                            var firstParts = requestPath.Split('/').FirstOrDefault();
+                            switch (firstParts)
+                            {
+                                case "media": context.Response.ContentType = "audio/" + ext; break;
+                                case "bk":
+                                case "cover": context.Response.ContentType = "image/" + ext; break;
+                            }
                             break;
                     }
 

+ 3 - 1
FNZCM/FNZCM.ConHost/config.json

@@ -7,8 +7,10 @@
   "MediaFilePattern": [
     "*.flac",
     "*.m4a",
+    "*.aac",
     "*.mp3",
-    "*.mkv"
+    "*.mkv",
+    "*.mp4"
   ],
   "BkFilePattern": [
     "*.jpg",