参考了别人的代码,然后自己修改了一下

        public static bool ResponseFile(HttpContext context, string _fullPath, long _speed){HttpRequest _Request = context.Request;HttpResponse _Response = context.Response;string strFileName = new FileInfo(_fullPath).Name;try{FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);BinaryReader br = new BinaryReader(myFile);try{_Response.AddHeader("Accept-Ranges", "bytes");_Response.Buffer = false;long fileLength = myFile.Length;long startBytes = 0;_Response.AddHeader("Content-Length", (fileLength - startBytes).ToString());if (startBytes != 0){_Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength - 1, fileLength));}_Response.AddHeader("Connection", "Keep-Alive");_Response.ContentType = "application/octet-stream";_Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8));int pack = 10240; //10K bytes       进行拆包,每包大小                   byte[] buff = new byte[pack];var contentLength = br.Read(buff, 0, pack);double d = 1000 / (_speed / pack); // 限速时每个包的时间Stopwatch wa = new Stopwatch();while (contentLength != 0){if (_Response.IsClientConnected){wa.Restart();_Response.BinaryWrite(buff);_Response.Flush();contentLength = br.Read(buff, 0, pack);wa.Stop();if (wa.ElapsedMilliseconds < d) //如果实际带宽小于限制时间就不需要等待
                            {Thread.Sleep((int)(d - wa.ElapsedMilliseconds));}}else{break;}}                     }catch{return false;}finally{br.Close();myFile.Close();}}catch{return false;}return true;}

转载于:https://www.cnblogs.com/sgciviolence/archive/2013/05/16/3081524.html

ASP.NET C# 文件下载速度限制相关推荐

  1. asp.net中大文件下载

    因为IIS支持的最大文件为int32的最大值位数的文件下载,所以,超过2G的文件无法通过IIS进行下载. 通过网上查找的资料,如下可实现文件的下载,使用filestream进行下载. public v ...

  2. Invalid non-ASCII or control character in header: 0x8BBE ASP.NET Core 文件下载报错

    这个错误通常是由于你在下载文件时使用了无效的非 ASCII 或控制字符造成的. ASP.NET Core 应用程序通常是通过 HTTP 协议与浏览器进行通信的,而 HTTP 协议中的报文头是使用 AS ...

  3. ASP.NET 大文件下载的实现思路及代码

    当我们的网站需要支持下载大文件时,如果不做控制可能会导致用户在访问下载页面时发生无响应,使得浏览器崩溃.可以参考如下代码来避免这个问题. using System; namespace WebAppl ...

  4. Asp.net大文件下载

    public partial class _Default : System.Web.UI.Page {     protected void Page_Load(object sender, Eve ...

  5. ASP.NET实现文件下载

    方式一:TransmitFile实现下载.将指定的文件直接写入 HTTP 响应输出流,而不在内存中缓冲该文件.     protected void Button1_Click(object  sen ...

  6. ASP.NET网页中RAR、DOC、PDF等文件下载功能实例源代码

    以前做asp.net下载功能的时候都是采用: <a href="http://www.wang0214.com/wgcms">下载</a> 的方式来实现下载 ...

  7. Vue + Element+ ASP.NET Core WebAPI 文件上传下载

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备asp.net后端文件上传的API Uplo ...

  8. (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法

    今天在测试ASP做一个文件下载页面,用ADODB.Stream来操作文件下载达到隐藏真实路径的目的,因为是本地测试,所以一开始用的是一个63.8M的文件做下载测试,却提示如下的错误: Response ...

  9. php 下载限制,php实现限制文件下载速度的代码实例

    有时候你会出于某种目的而要求把下载文件的速度放慢一些,例如你想实现文件下载进度条功能.限制下载速度最大的好处是节省带宽,避免瞬时流量过大而造成网络堵塞.本文将通过php代码来实现限制文件的下载速度. ...

  10. vue前端实现上传文件,vue 上传文件

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

最新文章

  1. Verilator简介及其下载安装卸载
  2. Android图片粘上后仍错误,android – 在Activity被销毁后,ImageView上的图像丢失了
  3. linux下如何在shell中结束进程(ctrl+c\ctrl+z\ctrl+d\ctrl+\的用法)
  4. .NET Core 3.0之深入源码理解ObjectPool(一)
  5. 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)
  6. Js将字符串转数字的方式
  7. 【IDEA工具】java通过IDEA打包项目
  8. 反转dataframe
  9. 计算机图像类型ppt,计算机图像处理.ppt
  10. Office默认打开方式的改变方法以及安装程序莫名启动问题的权威汇总
  11. cesium-加载DEM数据(可拉伸)
  12. [Java]面向对象编程
  13. 第7节 简单抓包实验及帧结构分析——基于科来网络分析系统
  14. amd为什么还用针脚_闲聊CPU针脚 一年一换都怪AMD不给力?
  15. 20 个 JavaScript 单行代码杀手锏
  16. Unity制作简陋版跑酷
  17. 想要创建个人博客只需五步骤——所有人看了都能学会的步骤
  18. express ajax 304缓存禁用,NodeJS / express:缓存和304状态代码
  19. WinServer misc
  20. 买了一台云服务器,到底能用来干嘛?

热门文章

  1. java并发编程(6)--CAS会导致“ABA问题“ 解决方案
  2. matlab里rem怎么表示,matlab的rem()和mod()函数
  3. hadoop 如何连beeline_impala为hadoop续命
  4. mysql 索引使用不当_MySQL笔记:select默认使用不当索引导致的巨大性能损失问题_MySQL...
  5. 设计模式之GOF23原型模式02
  6. asp 环境配置到mysql数据库增删改查
  7. Dubbo 优雅停机演进之路
  8. 1.4.PHP7.1 狐教程-环境(Mac下 PHP开发环境 配置及安装 php7.1.x nginx mysql)
  9. java 拦截所有路径_SpringMVC 拦截器路径怎么写
  10. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_17-页面查询接口定义-定义模型-需求分析和模型类...