5ea9a814d6
Pdf Import rewritten to greatly improve QR Code detection, reduce reliance on iTextSharp and improve thumbnails. Fixes #50
82 lines
2.7 KiB
C#
82 lines
2.7 KiB
C#
using Microsoft.Win32;
|
|
|
|
namespace Disco.Services.Interop
|
|
{
|
|
public static class MimeTypes
|
|
{
|
|
public static string ResolveMimeType(string Filename)
|
|
{
|
|
string fileExtension;
|
|
if (Filename.Contains("."))
|
|
fileExtension = Filename.Substring(Filename.LastIndexOf(".") + 1).ToLower();
|
|
else
|
|
fileExtension = Filename.ToLower();
|
|
|
|
// Try Known Mime Types
|
|
switch (fileExtension)
|
|
{
|
|
case "pdf":
|
|
return "application/pdf";
|
|
case "doc":
|
|
return "application/msword";
|
|
case "docx":
|
|
return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
case "docm":
|
|
return "application/vnd.ms-word.document.macroEnabled.12";
|
|
case "xml":
|
|
return "text/xml";
|
|
case "xls":
|
|
return "application/vnd.ms-excel";
|
|
case "xlsx":
|
|
return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
case "xlsm":
|
|
return "application/vnd.ms-excel.sheet.macroEnabled.12";
|
|
case "csv":
|
|
return "application/vnd.ms-excel";
|
|
case "jpg":
|
|
return "image/jpeg";
|
|
case "gif":
|
|
return "image/gif";
|
|
case "png":
|
|
return "image/png";
|
|
case "bmp":
|
|
return "image/bmp";
|
|
case "avi":
|
|
return "video/avi";
|
|
case "mpeg":
|
|
case "mpg":
|
|
return "video/mpeg";
|
|
case "mp3":
|
|
return "audio/mpeg";
|
|
case "mp4":
|
|
return "video/mp4";
|
|
case "wmv":
|
|
return "video/x-ms-wmv";
|
|
case "mov":
|
|
return "video/quicktime";
|
|
}
|
|
|
|
// Check System Registry
|
|
try
|
|
{
|
|
RegistryKey regExtensionKey = Registry.ClassesRoot.OpenSubKey("." + fileExtension);
|
|
if (regExtensionKey != null)
|
|
{
|
|
string regExtensionContentType = regExtensionKey.GetValue("Content Type") as string;
|
|
if (regExtensionContentType != null)
|
|
{
|
|
return regExtensionContentType;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
// Ignore Errors
|
|
}
|
|
|
|
// Return Default
|
|
return "unknown/unknown";
|
|
}
|
|
}
|
|
}
|