asp.net core webapi 向前端返回一个文件
后端接口返回文件
[Authorization] //给下载模版添加权限 [HttpGet] public IActionResult DownloadTemplate() { //AppContext.BaseDirectory 用于获取项目根目录 var filePath = $"{AppContext.BaseDirectory}/MyStaticFiles/取货模板.csv"; if (!System.IO.File.Exists(filePath)) { return new JsonResult("模板文件不存在!"); } try { byte[] fileBytes = System.IO.File.ReadAllBytes(filePath); return File(fileBytes, "application/csv", "取货模板.csv"); } catch (Exception ex) { return new JsonResult($"模板文件异常!" + ex.Message); } }
前端接口解析文件并下载
function downloadTemplate() {const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD); const response = await fetch(apiURL+'/webTaskHelper/downloadTemplate', { method: 'GET', headers: { "token": localStorage.getItem("token") || '', 'Content-Type': 'application/csv', //定义以什么编码来读取这个文件 }, }); const data = await response.blob() const blob = new Blob([data]) const url = URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = '取货模板.csv'; link.click(); }
分类:
.net / OI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现