ASP.netMVC文件下载

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


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

相关推荐

  • 稀疏矩阵转置多种算法详解

    稀疏矩阵转置多种算法详解这次博文写的有点长,因为我得构思,所以今天晚上(11.10)写一点,另外还有个重要的任务,因为再过40分钟就是剁手节了,过了今晚我不止是一个光棍,更是一个穷光棍、、、、我该怎么办。。。求拦截。不扯了正题,今天就先写写矩阵转置吧,现实中转置么,不就区区一个转置么,那有什么,瞅一眼就转过来了。计算机就是计算机,他没有相发也没有眼睛,那么我们就来告诉他怎么思考,怎么走路吧。方法一:一般转置(简单)转置矩阵

    2022年6月22日
  • 视频监控知识

    视频监控知识CIF分辨率CIF分辨率 CIFcommonintermediateformat DCIFdoubleintermediateformat QCIFquartercommonintermediateformat 图象格式 亮度取样的象素个…

    2022年6月28日
  • BeanCopier 详解「建议收藏」

    BeanCopier 详解「建议收藏」 BeanCopier实现属性拷贝的主要代码: BeanCopierbeanCopier=BeanCopier.create(dad.getClass(),dadly.getClass(),false); beanCopier.copy(dad,dadly,null);  查看BeanCopier源码可知: abstractpublicclass…

    2022年9月5日
  • 《SiamFC++:Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines》论文笔记

    《SiamFC++:Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines》论文笔记参考代码:video_analyst1.概述导读:这篇文章指出之前的一些跟踪算法没有深入讨论针对跟踪任务的实质,很多时候只是在某些点上进行突破,因而最后方法的性能总是有局限性的。对此文章深入分析了跟踪网络的特性,因而对跟踪网络的设计提出了4点建议:G1(目标位置估计和目标判别需要接耦,分别具有各自的分支)/G2(目标判别置信度不能与实际相模糊)/G3(不能依赖数据分布等先验知识,否则导致泛化性鲁棒性不强)/G4(目标位置的估计应该准确)。正是基于上的4点设计指导,文章设计了SiamFC++网络,在5

    2022年9月27日
  • ubuntu 下 vlc ,smplayer 播放电影时字幕乱码解决方法

    ubuntu 下 vlc ,smplayer 播放电影时字幕乱码解决方法自:http://blog.sina.com.cn/s/blog_70545bad01015ky1.htmlubuntu下vlc,smplayer播放电影时出现乱码,令人头疼的很,不知道该怎么办,网上查了一些方法,但是没有一个能成功的,也许是我的方法不正确,没办法,只能将就看一下英文字幕,或者有时候看不懂的时候干脆切换到win7底下看,但这终究不是解决的方法,从网上查了很多方法,但是

    2022年7月11日
  • Java 程序员们值得一看的好书推荐

    Java 程序员们值得一看的好书推荐“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料对着书上的代码自己敲的时候方便“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提

    2022年6月20日

发表回复

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

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