下载是大家都不陌生的词汇,有时上网难免想要下载一些文件到本地。这里简单提一下如何从项目中下载文件。
要实现很简单,我用的是FileStreamResult controller.File方法,使用Stream对象、内容类型和目标文件名创建一个FileStreamResult对象。
1、先获取文件在项目的路径。
使用Server.Mappath(path)语法,用途在于返回web服务器上给定虚拟路径相对应的物理文件路径。Path一定为虚拟路径。
2、获取目标文件的扩展名,以确定文件的类型。
使用Path.GetFileName(fath)语法,获取指定路径文件的文件名和扩展名(上述获取的物理文件路径)。
3、创建一个Stream对象。
先new 一个FileStream(string path,FileMode mode)--使用指定的路径和创建模式初始化FileStream类的新实例。
path:当前 FileStream 对象将封装的文件的相对路径或绝对路径;
mode: 一个常数,用于确定如何打开或创建文件;
具体操作看下图例:
A:是扩展名为’.docx’的MIME文件类型;
B:是操作系统打开文件的方式,一共有六种。
一.FileMode.Append
Append追加:
如果文件存在,则打开文件,把指针指到文件的末尾;如果不存在,则新建文件
二.FileMode.Create
Create:新建
如果文件存在,则覆盖原有文件,把指针指到文件的开始,文件的创建日期会更新;
如果文件不存在,则新建文件
三.FileMode.CreateNew
CreateNew:新建新的文件
如果文件存在,则产生异常;如果文件不存在,则产生异常
四.FileMode.OpenOrCreate
OpenOrCreate:打开或是新建
如果文件存在,则打开文件,把指针指到文件的开始;如果文件不存在,则新建文件
五. FileMode.Truncate
如果文件存在,则打开文件,清除这个文件中的内容,把指针指到文件的开始,保留最初文件的创建日期(重写);如果文件不存在,则产生异常
六. FileMode.Open
Open:打开文件
如果文件存在,则打开文件,把指针指到文件的开始;如果不存在,则产生异常
这样就能够实现下载的功能了,而此功能在不同的浏览器上效果也不一样。
- 谷歌浏览器
当前浏览页面提示:
浏览器下载页面:
- Internet Explorer浏览器
当前浏览页面提示:
浏览器下载页面:
- Microsoft Edge浏览器
当前浏览页面提示:
更多的就不一一列举了,不同的览器有不同的风格。而文件保存到本地就是保存在此电脑的下载里了。