TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
故如虹,知恩;故如月,知明
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
15篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
33篇
软件架构
23篇
.NET Core
118篇
.NET MVC
11篇
英语
3篇
随笔
86篇
Bootstrap
3篇
Redis
21篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
6篇
docker
41篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
.net core 文件下载,.net core excel下载
2413
人阅读
2019/3/25 17:30
总访问:
3837377
评论:
0
收藏:
0
手机
分类:
.NET Core
**代码如下,非常简单实用:** ``` private readonly IWebHostEnvironment _webHostEnvironment; public PhoneController(IWebHostEnvironment webHostEnvironment) { _webHostEnvironment = webHostEnvironment; } public IActionResult DownloadFile() { var filePath = "/app/tnblog_beta.apk"; var fileName = "tnblog_beta.apk"; /* FileStream fs = new FileStream(_webHostEnvironment.WebRootPath + filePath, FileMode.OpenOrCreate); fs.Close();*/ return File(new FileStream(_webHostEnvironment.WebRootPath + filePath, FileMode.Open), "application/octet-stream", fileName); } ``` 还有这种路径写法: ``` /// <summary> /// 模板下载 /// </summary> /// <returns></returns> public FileResult DownloadTemplate() { string baseDir = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot"); string filePath = baseDir + "/template/filetemplate.xls"; string fileName = "filetemplate.xls"; return File(new FileStream(filePath, FileMode.Open), "application/octet-stream", fileName); } ``` **使用response来输出已经存在了的附件文件** ``` using (FileStream fs = new FileStream(filePath, FileMode.Open)) { byte[] bytes = new byte[(int)fs.Length]; fs.Read(bytes, 0, bytes.Length); fs.Close(); //Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); Response.ContentType = "application/octet-stream;charset=UTF-8";; string newName = Guid.NewGuid().ToString().Replace("-", ""); Response.Headers.Add("Content-Disposition", "attachment; filename=" + newName + "." + tnblogResourceDTO.Suffix); Response.BodyWriter.WriteAsync(bytes); Response.BodyWriter.FlushAsync(); } ``` **也可以使用response来输出附件文件,例如下载内存中构建的excel表格** ``` //把内存流做为文件下载中转 MemoryStream memoryStream = new MemoryStream(); workbook.Write(memoryStream); //Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); Response.ContentType = "application/octet-stream;charset=UTF-8"; ; string newName = Guid.NewGuid().ToString().Replace("-", ""); Response.Headers.Add("Content-Disposition", "attachment;filename=" + WebUtility.UrlEncode("用户信息表.xls")); //Response.Headers.Add("Content-Disposition", "attachment;filename=用户信息表.xls"); Response.BodyWriter.WriteAsync(memoryStream.ToArray()); Response.BodyWriter.FlushAsync(); ``` 这里下载名称做了一下url编码不然遇到中文下载会报错:InvalidOperationException: Invalid non-ASCII or control character in header: 0x7528
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}