ASP .NET Core MVC – Action d’un contrôleur renvoyant un fichier PDF

Dans une action d’un contrôleur d’une application ASP .NET Core MVC, vous souhaitez retourner le contenu d’un fichier PDF contenu dans le répertoire wwwroot l’application.

Cette tâche se décompose en deux étapes :

  1. Obtenir à partir d’une URL relative le chemin physique du fichier sur le serveur
  2. Obtenir le contenu du fichier et le retourner dans une instance de la classe FileStreamResult

Voici le code du contrôleur :

ublic class DocumentController : Controller
{
    private IHostingEnvironment Env { get; }

    // Injection de dépendance.
    public DocumentController(IHostingEnvironment env)
    {
        Env = env;
    }

    public IActionResult Index()
    {
        // Variables locales.
        FileStreamResult fileResult;
        string sPathFichier;
        Stream stream;

        // Obtention du chemin physique du fichier.
        sPathFichier = Path.Combine(Env.WebRootPath, "pdf/D035.pdf");

        // Ouverture du fichier.
        stream = new FileStream(sPathFichier, FileMode.Open);

        // Création du résultat.
        fileResult = new FileStreamResult(stream, "application/pdf");

        // Retour.
        return fileResult;
    }
}

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.