web-dev-qa-db-fra.com

Utilisation de MimeMapping dans ASP.NET 5 (vNext)

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

enter image description here

30
Sauron

Le code suivant devrait fonctionner:

string contentType;
new FileExtensionContentTypeProvider().TryGetContentType(FileName, out contentType);
return contentType ?? "application/octet-stream";
52
Mark G

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);
11
Matyas

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.

2
SynerCoder