C# Winform 从 .NET 6 WebAPI 下载文件代码示例
.net 6从服务端下载文件代码;
C#从服务端下载文件代码;
WebAPI :
[HttpGet] [Route("[action]")] public IActionResult DownloadTemplate() { try { // 服务器文件路径 string url = AppDomain.CurrentDomain.BaseDirectory + @"template\信息导入模板.xlsx"; //确定模板文件是否存在 if (!System.IO.File.Exists(url)) { return BadRequest("服务端模板文件不存在!"); } //返回流 FileInfo fileMetaInfo = new System.IO.FileInfo(url); // 创建文件读取流 FileStream fileStream = System.IO.File.OpenRead(url); // 根据文件后缀获取文件的ContentType var fileExtensionContentTypeProvider = new FileExtensionContentTypeProvider(); // 返回文件contentType类型 var contentType = fileExtensionContentTypeProvider.Mappings[".xlsx"]; FileStreamResult result= File(fileStream, contentType, fileMetaInfo.Name); return result; } catch (Exception ex) { return BadRequest(ex); } }
Winform:
string requestAddress = ClientUtil.ServerApiUrl + "Info/DownloadTemplate"; var result = await HttpClientUtil.CreatHttpClient().GetAsync(requestAddress); Stream stream = result.Content.ReadAsStream(); if (result.StatusCode == System.Net.HttpStatusCode.OK && stream != null) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "xlsx files(*.xlsx)|*.xlsx"; saveFileDialog.FilterIndex = 0; saveFileDialog.FileName = "信息导入模板"; saveFileDialog.DefaultExt = "xlsx"; saveFileDialog.AddExtension = true; saveFileDialog.RestoreDirectory = true; saveFileDialog.Title = "信息导入模板保存对话框"; DialogResult dialogResult = saveFileDialog.ShowDialog(); if (dialogResult == DialogResult.OK) { //把 Stream 转换成 byte[] byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); //设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); //把 byte[] 写入文件 FileStream fs = new FileStream(saveFileDialog.FileName, FileMode.Create); fs.Write(bytes); fs.Flush(); fs.Close(); } }
分类:
.Net Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)