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    }        

}

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • FPGA的图像处理算法

    FPGA的图像处理算法下面简要分析了FPGA技术,包括FPGA技术原理和技术特点等,随后介绍一下FPGA的图像处理系统算法的实现,包括存储模块、运算单元、控制模块以及数据传输模块等内容。智能机器人、多媒体已经计算机的诞生都离不开数字图象处理技术,随着计算机智能化图像处理技术的不断发展,几乎所有领域当中都有数字图象技术的身影。例如军事、公共安全、工业、航天航空、卫星遥感以及生命科学等各种领域。因此对图象处理…

  • 箭头函数与普通函数的区别详解[通俗易懂]

    箭头函数与普通函数的区别详解[通俗易懂]箭头函数和普通函数的区别一.外形不同:箭头函数使用箭头定义,普通函数中没有代码实例如下://普通函数functionfunc(){//code}//箭头函数letfunc=()=>{//code}二.箭头函数都是匿名函数普通函数可以有匿名函数,也可以有具体名函数,但是箭头函数都是匿名函数。代码实例如下://具名函数functionfunc(){//code}//匿名函数letfunc=function(){//cod

  • tcpdump抓包命令详解_tcpdump抓udp包命令详解

    tcpdump抓包命令详解_tcpdump抓udp包命令详解tcpdump

  • 我来了哦

    我来了哦

  • netstat命令的作用使用详解_netstat命令的作用使用详解

    netstat命令的作用使用详解_netstat命令的作用使用详解netstat命令的作用Netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(InterfaceStatistics),masquerade连接,多播成员(MulticastMemberships)等等。输出信息含义从整体上看,netstat的输出结果可以分为两个部分:一个是ActiveInternetconnections,称为有源TCP连接,…

  • C#实现一个局域网文件传输工具

    C#实现一个局域网文件传输工具工作需要,经常会在工作的台式机和笔记本之间传文件或者需要拷贝文本,两个机器都位于局域网内,传文件或者文本的方式有很多种,之前是通过共享文件夹来进行文件的拷贝,或者通过SVN进行同步。文本传递比较简单,可以通过两台机器上装QQ登两个号码,或者在共享目录下建一个TXT,或者发电子邮件等等。不过上面这些方法总觉得不直接,所以想基于P2P做一个小的局域网文件和文字传输小工具。WinForm的工程,

发表回复

您的电子邮箱地址不会被公开。

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