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 :
- Obtenir à partir d’une URL relative le chemin physique du fichier sur le serveur
- Obtenir le contenu du fichier et le retourner dans une instance de la classe FileStreamResult
Voici le code du contrôleur :
[cc lang= »csharp »]
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;
}
}
[/cc]