Je ne trouve pas de référence au téléchargement d'un fichier à l'aide de MVC Core.
Nous avons un seul fichier exe que les membres peuvent télécharger sur notre site Web. Dans le passé, nous avons mis
<a href=(file path)> Download < /a>
pour que nos utilisateurs puissent cliquer. Je voudrais faire quelque chose d’équivalent dans MVC Core le long des lignes de
<a href=@ViewData["DownloadLink"]> Download < /a>
avec DownloadLink renseigné avec le chemin du fichier.
public class DownloadController : Controller
{
[HttpGet]
public IActionResult Index()
{
ViewData["DownloadLink"] = ($"~/Downloads/{V9.Version}.exe");
return View();
}
}
`
Le lien <a href=@ViewData["DownloadLink"]> Download < /a>
obtient le chemin correct, mais lorsque vous cliquez dessus, seul le chemin sera rendu dans la barre d'adresse. Existe-t-il un moyen simple de définir un lien de téléchargement?
J'ai utilisé this réponse posté par @Tieson T pour proposer cette solution
public FileResult Download()
{
var fileName = $"{V9.Version}.exe";
var filepath = $"Downloads/{fileName}";
byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);
return File(fileBytes, "application/x-msdownload", fileName);
}
La vue est maintenant
<a asp-action="Download" asp->
Download
@Ageonix avait également raison de ne pas avoir besoin du ~ pour se rendre à wwwroot
Je ne suis pas un endroit où je peux l'essayer, mais est-ce que quelque chose comme ça ferait l'affaire?
<a href="<%= Url.Content('~/Downloads/{ V9.Version}.exe') %>"> Download </a>