ASP.netMVC文件下载

ASP.netMVC文件下载ASP.netMVC文件下载ASP.netMVC下载文件一般有几种方法第一种:超链接方法,直接指向目标文件地址;window.open(“”); 标签href=“”;第二种:后台下载,但后台下载又有三种方式;(1)返回filestreampublicFileStreamResultdownload(){stringfileName=””;//客户端保存的文件名stringfilePath=Server.MapPath(“”);//路径…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ASP.netMVC文件下载

ASP.netMVC下载文件一般有几种方法

第一种:超链接方法,直接指向目标文件地址;

  1. window.open(“”);
  2. 标签href=“”;

第二种:后台下载,但后台下载又有三种方式;

(1)返回filestream

public FileStreamResult download()

{

     string fileName = “”;//客户端保存的文件名

     string filePath = Server.MapPath(“”);//路径

     return File(new FileStream(filePath, FileMode.Open), “text/plain”,  

     fileName);

}

其中:“text/plain”是文件MIME类型

(2)返回file

public FileResult download()

{

      string filePath = Server.MapPath(“”);//路径

      return File(filePath, “text/plain”, “”//是客户端保存的文件名字);

}

(3)TransmitFile方法

 1  public void download()

 2  {

 3       string fileName = “”;//客户端保存的文件名

 4       string filePath = Server.MapPath(“”);//路径

 5       FileInfo fileinfo = new FileInfo(filePath);

 6             Response.Clear();         //清除缓冲区流中的所有内容输出

 7             Response.ClearContent();  //清除缓冲区流中的所有内容输出

 8             Response.ClearHeaders();  //清除缓冲区流中的所有头

 9             Response.Buffer = true;   //该值指示是否缓冲输出,并在完成处理整个响应之后将其发送

10             Response.AddHeader(“Content-Disposition”, “attachment;filename=” + fileName);

11             Response.AddHeader(“Content-Length”,fileinfo.Length.ToString());

12             Response.AddHeader(“Content-Transfer-Encoding”, “binary”);

13             Response.ContentType = “application/unknow”;  //获取或设置输出流的 HTTP MIME 类型

14             Response.ContentEncoding = System.Text.Encoding.GetEncoding(“gb2312”); //获取或设置输出流的 HTTP 字符集

15             Response.TransmitFile(filePath);

16             Response.End();

17  }

(4)Response分块下载

 1 public void download()

 2 {

 3       string fileName = “”;//客户端保存的文件名

 4       string filePath = Server.MapPath(“”);//路径

 5       System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);

 7       if (fileInfo.Exists == true)

 8       {

 9           const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力

10           byte[] buffer = new byte[ChunkSize];

11           Response.Clear();

12           System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);

14           long dataLengthToRead = iStream.Length;//获取下载的文件总大小

15           Response.ContentType = “application/octet-stream”;

16           Response.AddHeader(“Content-Disposition”, “attachment; filename=” + HttpUtility.UrlEncode(fileName));

17        while (dataLengthToRead > 0 && Response.IsClientConnected)

18       {

19              int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小

20              Response.OutputStream.Write(buffer, 0, lengthRead);

21              Response.Flush();

22              dataLengthToRead = dataLengthToRead – lengthRead;

23       }

24       Response.Close();

25    }        

}

这篇文章对你有帮助吗?作为一名程序工程师,在评论区留下你的困惑或你的见解,大家一起来交流吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157837.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Eureka]REST操作接口清单[通俗易懂]

    [Eureka]REST操作接口清单[通俗易懂]源码地址:https://github.com/Netflix/eureka/wiki数据来源:https://github.com/Netflix/eureka/wiki/Eureka-REST-operationsEureka作为SpringCloud常用的注册中心,其开放了以下接口:注:接口仅支持xml/json两种数据格式,请求时需设定Context-Type为…

    2022年8月21日
  • linux添加静态路由命令_linux route add永久路由

    linux添加静态路由命令_linux route add永久路由linux下静态路由修改命令方法一:添加路由routeadd-net192.168.0.0/24gw192.168.0.1routeadd-host192.168.1.1dev192.168.0.1删除路由routedel-net192.168.0.0/24gw192.168.0.1add增加路由del删除路由-net设置到某…

    2022年10月4日
  • kali虚拟机安装教程(超详细)

    kali虚拟机安装教程(超详细)一、官方下载KaliLinux官方网址:www.Kali.org下载方式分两种:http下载和bt下载(由于是国外网站http方式下载会非常慢),选择对应版本点击即可下载。二、创建新的虚拟1、新建虚拟机(使用自定义方式),点击”下一步“,然后选择自己所安装的虚拟机版本,再点击”下一步“;2、选择”稍后安装操作系统“,点击”下一步“,选择虚拟机可支持的Linux版本,这里使用Debian8.x,然后点击”下一步“;3、输入虚拟机名称并选择安装位置,点击”.

    2022年5月2日
  • 网络推广100种方法有哪些_100种宣传方式

    网络推广100种方法有哪些_100种宣传方式一米软件发现网上很多人都在找网络推广100种方法,但 其实网站推广并不是方法越多越好,而是找到适合自己的方法为宜,下面一米软件就来给大家介绍下一些常用网站推广的方法。1、搜索引擎营销搜索引擎营销,这种方法一般是通过自建官网然后针对官网进行优化与更新,使得网站在搜索引擎中有一个好的排名。也有通过做付费推广,使得网站的某个关键词在搜索引擎中有个好的排名。2、自媒…

    2022年4月20日
  • keras系列︱Sequential与Model模型、keras基本结构功能(一)

    keras系列︱Sequential与Model模型、keras基本结构功能(一)不得不说,这深度学习框架更新太快了尤其到了Keras2.0版本,快到Keras中文版好多都是错的,快到官方文档也有旧的没更新,前路坑太多。到发文为止,已经有theano/tensorflow/CNTK支持keras,虽然说tensorflow造势很多,但是笔者认为接下来Keras才是正道。笔者先学的caffe,从使用来看,比caffe简单超级多,非常好用,特别是重新训练一个模型,但是

    2022年10月22日
  • PyCharm汉化后无法打开Settings设置「建议收藏」

    PyCharm汉化后无法打开Settings设置「建议收藏」通常为了方便直观的了解软件的用途,我们习惯导入jar包汉化软件,但同时也存在一些隐藏问题,这里的设置选项无法打开就是一个例子点击后无法显示任何内容这里提供两个jar包只需把相应包放到PyCharm安装目录里的lib目录里面即可。同时删掉之前的汉化包1:https://pan.baidu.com/s/16bydeP5gRBCblh0BAoWUzQ提取码:21ro2:https://pan…

    2022年5月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号