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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea集成svn插件[通俗易懂]

    idea集成svn插件[通俗易懂]idea集成svn插件,检出项目1、idea配置如若出现下图,继续第二步,2、指向svn安装目录下,bin目录下,svn.exe注意:默认安装的海龟svn一路next是有问题的,控制面板卸载后重装。安装第二步时,把安装内容的第二项勾选上(默认安装未勾选)。…

    2022年10月18日
    0
  • 倒立摆的simulink模型搭建

    倒立摆的simulink模型搭建倒立摆的simulink模型搭建1.倒立摆基本背景:倒立摆,InvertedPendulum,是典型的多变量、高阶次,非线性、强耦合、自然不稳定系统。倒立摆系统的稳定控制是控制理论中的典型问题,在倒立摆的控制过程中能有效反映控制理论中的许多关键问题,如非线性问题、鲁棒性问题、随动问题、镇定、跟踪问题等。因此倒立摆系统作为控制理论教学与科研中典型的物理模型,常被用来检验新的控制理论和…

    2022年8月18日
    19
  • 物联网开发_物联网是不是一种骗局

    物联网开发_物联网是不是一种骗局物联网期末大作业—睡眠质量检测系统

    2022年10月9日
    0
  • redflag linux安装教程,硬盘安装REDFlag LINUX体会

    redflag linux安装教程,硬盘安装REDFlag LINUX体会我是一名LINUX的初学者,在看了许多LINUX的介绍之后,在本着大胆和心细的原则下,尝试了一回安装LINUX。现把我的一些心得和体会和大家分享,希望对一些入门级的朋友有所帮助。我装的是REDFlagLINUX,我原来的操作系统是WINXP,本着学习LINUX的和省钱至上的想法,我选择了安装WINXP和LINUX的双系统,我在网上下载了LINUX的ISO文件,先保存在随意的一个硬盘里,只要不是…

    2022年8月20日
    3
  • 一元线性回归方程公式_用普通最小二乘法估计经典线性模型

    一元线性回归方程公式_用普通最小二乘法估计经典线性模型概述别看公式多,其实很简单最小二乘法其实又叫最小平方法,是一种数据拟合的优化技术。实质上是利用最小误差的平方寻求数据的最佳匹配函数,利用最小二乘法可以便捷的求得未知的数据,起到预测的作用,并且是的这些预测的数据与实际数据之间的误差平方和达到最小。一般应用在曲线拟合的目的上。原理本篇文章不考虑其他方面的应用,我们用最简单的实例说明最小二乘法的工作原理与其内在含义。当我们在研究两个…

    2025年6月1日
    0
  • SDL2来源分析7:演出(SDL_RenderPresent())

    SDL2来源分析7:演出(SDL_RenderPresent())

    2022年1月10日
    50

发表回复

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

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