MVC返回文件
2018-06-22 06:09:17来源:未知 阅读 ()
上一篇 介绍了Action 返回View, 顺便也看到了返回Json的处理, 这一篇并不看文件返回的源码, 此篇是为了应用.
1. Response返回文件
在MVC的项目中, 还是能看到很多同事, 喜欢使用 Response的方式来返回文件. 如:
public void Index() { var path = Server.MapPath("~/Content/Site.css"); using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)) { byte[] bytes = new byte[(int)fs.Length]; fs.Read(bytes, 0 , bytes.Length); fs.Close(); Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Site.css")); Response.AddHeader("Content-Length", bytes.Length.ToString()); Response.BinaryWrite(bytes); Response.Flush(); } }
当在浏览器中直接输入地址后, 会直接下载这个文件.
虽然这种方式确实可以返回文件, 但是在MVC中, 提供了一个简便的方法. 可以把文件作为返回值去返回.
2. FileResult
public ActionResult Get() { var path = Server.MapPath("~/Content/Site.txt"); return File(new FileStream(path, FileMode.Open), "text/plain", HttpUtility.UrlEncode("Site.txt")); }
返回文件的时候牵涉一个 contentType 的问题, 这个contentType, 我想没人能记得住, 所以这里也提出引用, 可以在开发的时候查看一下就可以了.
一般的文件, 还可以通过 MimeMapping.GetMimeMapping("Site.txt") 的方式来获取类型.
我常用的基本也就这两中了, 当然还有别的方式, 比如返回excel的时候, 可以使用MemoryStream, 但是主要的部分都是差不多的.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- ASP.NET使用Ajax返回Json对象的方法 2020-03-23
- ASP.NET MVC Admin主页快速构建 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash