IE utiliza GetClassFileOrMime
y FindMimeFromData
API para detectar el tipo MIME de datos/archivos (UrlMon
unidad en Delphi)
MIME Type Detection in Internet Explorer
El CLSID regresaron de GetClassFileOrMime
se podría situar en el registro bajo HKEY_CLASSES_ROOT\CLSID\<clsid>\MimeTypes
. (también FileExtensions
, FriendlyName
).
El registro también contiene una base de datos MIME en: HKEY_CLASSES_ROOT\MIME\Database\Content Type
.
Pero dado que la lista de known MIME types es relativamente pequeña, puede mantenerlo como un XML de recursos (o lo que sea) y simplemente recuperarlo desde allí. Esto servirá tanto para Windows como para OSX.
Para la operación de carga de archivos, simplemente puede usar siempre application/octet-stream
.
Indy tiene TIdMimeTable
clase (IdGlobal
) y utiliza una lista fija más la inspección del registro HKEY_CLASSES_ROOT
(ver FillMimeTable
). Si no se encuentra ninguna coincidencia, se usa application/octet-stream
.
Probablemente desee inspeccionar el archivo contenido en el lado del servidor una vez que se cargue el archivo, y no confiar en los encabezados porque el ContentType
podría ser alterado por el lado del cliente y tampoco coincidir con el registro en el servidor -lado.