Utilisation de MimeMapping dans ASP.NET 5 (vNext)

j'essaie de faire passer mon ancien projet mvc5 au 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

enter image description here

22
demandé sur Mafii 2015-12-07 13:26:30

3 réponses

le code suivant doit fonctionner:

string contentType;
new FileExtensionContentTypeProvider().TryGetContentType(FileName, out contentType);
return contentType ?? "application/octet-stream";
35
répondu Mark G 2016-03-09 00:24:03

il existe un paquet NuGet MimeTypes qui fonctionne avec .Net Core projects comme alternative à FileExtensionContentTypeProvider . Je ne suis pas au courant d'un autre paquet de résolveur de type mime, qui fonctionne avec .Net Core (au moins jusqu'à présent).

l'usage est simple:

string fileName = "trial.jpg";
string mime = MimeKit.MimeTypes.GetMimeType(fileName);
10
répondu Matyas 2017-03-21 18:37:52
Système

.Le Web n'est pas déplacé .NetCore parce qu'il s'appuie trop sur les API qui sont spécifiques à la plate-forme. Vous pouvez jeter un oeil à Microsoft reference source:

https://github.com/Microsoft/referencesource/blob/master/System.Web/MimeMapping.cs

le code est soumis à une licence MIT.

2
répondu SynerCoder 2015-12-07 10:32:57