J'essaie de déplacer mon ancien projet mvc5 vers mvc6. L'ancien code était:
public string ContentType
{
get
{
if (!string.IsNullOrEmpty(FileName))
return MimeMapping.GetMimeMapping(FileName);
return null;
}
}
L'erreur est
Le nom "MimeMapping" n'existe pas dans le contexte actuel
Le code suivant devrait fonctionner:
string contentType;
new FileExtensionContentTypeProvider().TryGetContentType(FileName, out contentType);
return contentType ?? "application/octet-stream";
Il existe un package NuGet MimeTypes qui fonctionne avec les projets .Net Core comme alternative à FileExtensionContentTypeProvider
. Je ne connais aucun autre package de résolveur de type MIME, qui fonctionne avec .Net Core (au moins jusqu'à présent).
L'utilisation est simple:
string fileName = "trial.jpg";
string mime = MimeKit.MimeTypes.GetMimeType(fileName);
System.Web n'est pas déplacé vers .NetCore car il repose trop sur des API spécifiques à la plate-forme. Vous pouvez jeter un œil à la source de référence Microsoft:
https://github.com/Microsoft/referencesource/blob/master/System.Web/MimeMapping.cs
Le code est soumis à une licence MIT.