一步步学习ASP.NET MVC3 (12)——FileResult
2014-02-18 20:11
453 查看
请注明转载地址:http://www.cnblogs.com/arhat
忙了两天,本来老魏昨天就应该写出新的文章,但是由于昨天雨夹雪而且加上昨天晚上加了班,到家都没饭吃了,一看时间都9点了,什么饭店都没有了,于是灰溜溜的就回家吃了包泡面,晚上老婆挺着大肚子还得伺候啊,所以时间就不允许了。今天老魏要补上一章了。
前面几章把ActionResult的子类讲的差不多了,今天应该是最后一个了FileResult。但是不幸的是FileResult也是个抽象类,其子类有FilePathResult,FileContentResult,FileStreamResult。不过基本上用法都一样,都是用来下载文件用的。
在Controller中提供了6个方法,分别返回的是上面三个子类。我们来看一下这六个方法的定义。
下面,我们来测试一下这几个函数。同样的需要创建一个项目,同时在项目中创建一个文件夹为”File”,用来存放要下载的文件。
我们直接在HomeController的Index方法中测试这几个函数。
1,如果我们要在浏览器中需要直接显示文件(比如图片,文本文件),那么我们需要使用
这个函数。
参数:
fileName:要显示的文件
contentTye:文件的MIME类型
我们更改一下代码:
我们打开浏览器预览一下
那么我们会发现,浏览器并没有弹出下载对话框,而是直接显示到浏览器中了,同理,如果是txt文件,那么也会直接显示到浏览器中。
这里需要注意的地方是第二个参数contentType,这个是用来设置文件的MIME类型,那么大家可以从这里查看。
至于文本文件,大家可以测试一下,如果contentType是一些浏览器不能直接打开的文件,那么才会弹出下载对话框。
但是我们会发现,下载的时候没有文件名,那么这点是让人很不爽的。
此时,我们可以使用
这个函数。第三个三处就是文件的下载名称。
结果如图:
至于其他的函数,只有第一个参数不同,只需要给出响应的参数就可以了。通过上面的函数定义我们会发现,第一个参数的类型就三个。
1,string fileName:文件的路径
2,Stream fileStream:以文件流的方式下载
3,byte[] filecontent:以字节的方式下载。
大家可以分别试试。好了,本章就基本上把ActionResult几个子类讲完了,那么大家可以多多练习一下。明天老魏继续写!
忙了两天,本来老魏昨天就应该写出新的文章,但是由于昨天雨夹雪而且加上昨天晚上加了班,到家都没饭吃了,一看时间都9点了,什么饭店都没有了,于是灰溜溜的就回家吃了包泡面,晚上老婆挺着大肚子还得伺候啊,所以时间就不允许了。今天老魏要补上一章了。
前面几章把ActionResult的子类讲的差不多了,今天应该是最后一个了FileResult。但是不幸的是FileResult也是个抽象类,其子类有FilePathResult,FileContentResult,FileStreamResult。不过基本上用法都一样,都是用来下载文件用的。
在Controller中提供了6个方法,分别返回的是上面三个子类。我们来看一下这六个方法的定义。
protected internal FileContentResult File(byte[] fileContents, string contentType); protected internal FileStreamResult File(Stream fileStream, string contentType); protected internal FilePathResult File(string fileName, string contentType); protected internal virtual FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName); protected internal virtual FileStreamResult File(Stream fileStream, string contentType, string fileDownloadName); protected internal virtual FilePathResult File(string fileName, string contentType, string fileDownloadName);
下面,我们来测试一下这几个函数。同样的需要创建一个项目,同时在项目中创建一个文件夹为”File”,用来存放要下载的文件。
我们直接在HomeController的Index方法中测试这几个函数。
1,如果我们要在浏览器中需要直接显示文件(比如图片,文本文件),那么我们需要使用
protected internal FilePathResult File(string fileName, string contentType);
这个函数。
参数:
fileName:要显示的文件
contentTye:文件的MIME类型
我们更改一下代码:
public ActionResult Index() { return File("/File/1.jpg", "image/jpeg"); }
我们打开浏览器预览一下
那么我们会发现,浏览器并没有弹出下载对话框,而是直接显示到浏览器中了,同理,如果是txt文件,那么也会直接显示到浏览器中。
这里需要注意的地方是第二个参数contentType,这个是用来设置文件的MIME类型,那么大家可以从这里查看。
至于文本文件,大家可以测试一下,如果contentType是一些浏览器不能直接打开的文件,那么才会弹出下载对话框。
public ActionResult Index() { return File("/File/一步步学习ASP.NET MVC3 第八章.doc", "application/msword"); }
但是我们会发现,下载的时候没有文件名,那么这点是让人很不爽的。
此时,我们可以使用
protected internal virtual FilePathResult File(string fileName, string contentType, string fileDownloadName);
这个函数。第三个三处就是文件的下载名称。
public ActionResult Index() { return File("/File/一步步学习ASP.NET MVC3 第八章.doc", "application/msword", "一步步学习ASP.NET MVC3 第八章.doc"); }
结果如图:
至于其他的函数,只有第一个参数不同,只需要给出响应的参数就可以了。通过上面的函数定义我们会发现,第一个参数的类型就三个。
1,string fileName:文件的路径
2,Stream fileStream:以文件流的方式下载
3,byte[] filecontent:以字节的方式下载。
大家可以分别试试。好了,本章就基本上把ActionResult几个子类讲完了,那么大家可以多多练习一下。明天老魏继续写!
相关文章推荐
- 一步步学习ASP.NET MVC3 (11)——@Ajax,JavaScriptResult(2)
- 一步步学习ASP.NET MVC3 (10)——@Ajax,JavaScriptResult(1)
- 一步步学习ASP.NET MVC3 (8)——EmptyResult,ContentResult,RedirectResult
- 一步步学习ASP.NET MVC3 (8)——EmptyResult,ContentResult,RedirectResult
- 一步步学习ASP.NET MVC3 (11)——@Ajax,JavaScriptResult(1) - 大话济公
- 一步步学习SPD2010--第三章节--处理列表和库(12)----创建网站列
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(12)--给初始表单添加关联字段
- 一步步学习SPD2010--第八章节--理解工作流(12)--关键点
- MVC学习四:通过FileResult向浏览器发送文件
- 跟着锅子一步步学习32位汇编(12)---PUSH和POP PUSHAD和POPAD
- 一步步学习ASP.NET MVC3 (3)——Razor(1)
- Java学习笔记_12_File的建立和存储
- MVC学习四:通过FileResult向浏览器发送文件
- 一步步学习ASP.NET MVC3 (13)——HTML辅助方法
- 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(12)--给初始表单添加关联字段
- 一步步学习ASP.NET MVC3 (2)——入门程序
- JavaSE学习_12_file_fanxing
- 一步步学习汇编(12)之标识指令(破解软件的必修课三)
- 一步步学习ASP.NET MVC3 (15)——过滤器
- 一步步学习SPD2010--第十章节--SP网站品牌化(12)--关键点