asp mvc .net6 文件下载

 public class HomeController : Controller
 {
     private readonly ILogger<HomeController> _logger;

     private readonly IWebHostEnvironment _webHostEnvironment;
     private Service Service = new Service();
     public HomeController(ILogger<HomeController> logger ,IWebHostEnvironment webHostEnvironment)
     {
         _logger = logger;
         _webHostEnvironment = webHostEnvironment;
     }

 public IActionResult DownloadFile(string fileName)
 {
     if (string.IsNullOrEmpty(fileName))
     {
         return View();
     }

     // 构建相对路径
     var filePath = Path.Combine("path_to_your_files_folder", fileName);

     // 获取实际物理路径
     var physicalPath = Path.Combine(_webHostEnvironment.WebRootPath, filePath);

     // 检查文件是否存在
     if (!System.IO.File.Exists(physicalPath))
     {
         return View("Error"); // 如果文件不存在,返回 Error.cshtml 页面
     }

     // 读取文件内容
     var fileBytes = System.IO.File.ReadAllBytes(physicalPath);

     // 返回文件作为 FileResult
     return File(fileBytes, "application/octet-stream", fileName);
 }
}

@{
    ViewData["Title"] = "DownloadFile";
}

<h1>DownloadFile</h1>

<table class="table table-bordered table-striped">
    <thead>
        <tr>
            <td>内容下载</td>
        </tr>
    </thead>
    <tbody id="content">
        <tr>
            <td>
                @* 在视图中传递文件名作为参数 *@
                <a asp-controller="Home" asp-action="DownloadFile" asp-route-fileName="ControlCAN.dll">DLL下载</a>
            </td>
        </tr>
        <tr>
            <td>
                <a asp-controller="Home" asp-action="DownloadFile" asp-route-fileName="MESMain.exe">MESMain.exe</a>
            </td>
        </tr>
    </tbody>
</table>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值