IE korzysta GetClassFileOrMime
i FindMimeFromData
API do wykrywania typu MIME danych/plików (UrlMon
jednostkę w Delphi).
MIME Type Detection in Internet Explorer
Clsid wrócił z GetClassFileOrMime
może znajdować się w rejestrze pod HKEY_CLASSES_ROOT\CLSID\<clsid>\MimeTypes
. (także FileExtensions
, FriendlyName
).
W rejestrze znajduje się również baza danych MIME pod numerem: HKEY_CLASSES_ROOT\MIME\Database\Content Type
.
Ale ponieważ lista known MIME types jest względnie mała, można ją przetrzymać jako plik XML źródła (lub cokolwiek innego) i po prostu pobrać z niego. To zapewni zarówno Windows, jak i OSX.
Do operacji przesyłania plików można po prostu zawsze użyć application/octet-stream
.
Indy ma klasę TIdMimeTable
(IdGlobal
) i używa stałej listy oraz inspekcji rejestru HKEY_CLASSES_ROOT
(patrz FillMimeTable
). Jeśli nie zostanie znalezione dopasowanie, zostanie użyty application/octet-stream
.
Prawdopodobnie powinieneś chcieć sprawdzić plik zawartość po stronie serwera po przesłaniu pliku, a nie polegać na nagłówkach, ponieważ ContentType
może zostać naruszone po stronie klienta, a także nie pasuje do rejestru na serwerze -bok.