C# 下载文件 (ASP.NET Core Web API )
using Microsoft.AspNetCore.Mvc; using System.IO; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Logging; using Microsoft.AspNetCore.StaticFiles; using System.Threading.Tasks; namespace FCore.Saas.SCM.WebAPI.Areas.Files { public class FilesController : BaseController { private readonly IHostingEnvironment _hostingEnvironment; private readonly ILogger<FilesController> _logger; public FilesController(IHostingEnvironment hostingEnvironment, ILogger<FilesController> logger) { _hostingEnvironment = hostingEnvironment; _logger = logger; } [HttpPost, HttpGet, AllowAnonymous] public async Task<IActionResult> DownloadFile(string businessDirectoryName, string fileFullName) { string filePath = _hostingEnvironment.ContentRootPath + "\\Files\\Upload\\" + businessDirectoryName + "\\" + fileFullName; if (!System.IO.File.Exists(filePath)) { return LocalRedirect("/Files/NotFind"); } var memory = new MemoryStream(); using (var stream = new FileStream(filePath, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; return File(memory, GetContentType(filePath), Path.GetFileName(filePath)); } private string GetContentType(string path) { var provider = new FileExtensionContentTypeProvider(); string contentType; if (!provider.TryGetContentType(path, out contentType)) { contentType = "application/octet-stream"; } return contentType; } } }
文件:
请求地址
https://localhost:44359/api/Files/Files/DownloadFile?businessDirectoryName=DownloadTemplate&fileFullName=SaasSCM批量新增商品模板.xlsx
无限接近死亡,才能领悟生命的真谛
标签:
C#
, ASP.NET Core Web API
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现