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>