ASP.NET文件下载函数使用浅析

 

 【网上购物论坛】-IT泡吧![Www.itpob.Cn]网上购物社区! - Powered by Discuz!
http://www.itpob.cn/

 

ASP.NET文件下载函数的使用使得我们的程序操作有了明显的提升,那么本文就向你介绍ASP.NET文件下载函数的相关信息。

 

ASP.NET文件下载函数使用是什么情况呢?在你的Page_Load中添加这样的代码:


  1. Page.Response.Clear();  
  2. bool success = ResponseFile(Page.Request, Page.Response, "目的文件名称", @"源文件路径", 1024000);  
  3.  if (!success)  
  4.      Response.Write("下载文件出错!");  
  5. Page.Response.End(); 

ASP.NET文件下载函数代码为:


  1. public static bool ResponseFile(HttpRequest _Request,HttpResponse _Response,string _fileName,string _fullPath, long _speed)  
  2.     {  
  3.         try 
  4.         {  
  5.             FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);  
  6.             BinaryReader br = new BinaryReader(myFile);  
  7.             try 
  8.             {  
  9.                 _Response.AddHeader("Accept-Ranges", "bytes");  
  10.                 _Response.Buffer = false;  
  11.                 long fileLength = myFile.Length;  
  12.                 long startBytes = 0;  
  13.        
  14.                 double pack = 10240; //10K bytes  
  15.                 //int sleep = 200;   //每秒5次   即5*10K bytes每秒  
  16.                 int sleep = (int)Math.Floor(1000 * pack / _speed) + 1;  
  17.                 if (_Request.Headers["Range"] != null)  
  18.                 {  
  19.                     _Response.StatusCode = 206;  
  20.                     string[] range = _Request.Headers["Range"].Split(new char[] {'=', '-'});  
  21.                     startBytes = Convert.ToInt64(range[1]);  
  22.                 }  
  23.                 _Response.AddHeader("Content-Length", (fileLength - startBytes).ToString());  
  24.                 if (startBytes != 0)  
  25.                 {  
  26.                     //Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength-1, fileLength));  
  27.                 }  
  28.                 _Response.AddHeader("Connection", "Keep-Alive");  
  29.                 _Response.ContentType = "application/octet-stream";  
  30.                 _Response.AddHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(_fileName,System.Text.Encoding.UTF8) );  
  31.                
  32.                 br.BaseStream.Seek(startBytes, SeekOrigin.Begin);  
  33.                 int maxCount = (int) Math.Floor((fileLength - startBytes) / pack) + 1;  
  34.  
  35.                 for (int i = 0; i < maxCount; i++)  
  36.                 {  
  37.                     if (_Response.IsClientConnected)  
  38.                     {  
  39.                         _Response.BinaryWrite(br.ReadBytes(int.Parse(pack.ToString())));  
  40.                         Thread.Sleep(sleep);  
  41.                     }  
  42.                     else 
  43.                     {  
  44.                         i=maxCount;   
  45.                     }  
  46.                 }  
  47.             }  
  48.             catch 
  49.             {  
  50.              return false;  
  51.             }  
  52.             finally  
  53.             {  
  54.                 br.Close();  
  55.  
  56.                 myFile.Close();  
  57.             }  
  58.         }  
  59.         catch 
  60.         {  
  61.             return false;  
  62.         }  
  63.         return true;  
  64.     } 

这样就实现了文件下载时,不管是什么格式的文件,都能够弹出打开/保存窗口.

ASP.NET文件下载函数的基本情况就向你介绍到这里,希望对你了解ASP.NET文件下载函数有所帮助。

C# 在ASP.NET中利用FTP进行远程文件下载 ASP.NET是一个成熟的框架,广泛应用于企业级Web应用程序的开发。它提供了丰富的组件和服务,帮助开发者快速构建功能强大的Web应用程序。C#作为.NET的核心编程语言,与ASP.NET有着天然的契合度,这使得开发者可以利用C#丰富的语法特性、类型安全和面向对象的特性来构建高效的Web服务。System.Net命名空间包含了一系列的类,这些类主要用于处理网络通信,包括但不限于发送和接收网络数据包、处理网络异常、以及数据的编码与解码等任务。 阅读详情

相关推荐

若依Vue整合积木报表实战:Token安全校验全流程解析

本文详细解析了在若依Vue后台系统中安全集成积木报表的全流程,重点阐述了Token安全校验的核心机制。通过前端菜单配置、Token传递、后端权限拦截及自定义Token服务实现,构建了一套完整的企业级报表访问安全防线,确保核心业务数据的安全可控。

t8u9v0的博客 578

ASP.NET Core 下载文件

有效值不限于“image/jpeg”、“image/gif”、“image/png”、“text/plain”、“application/x-zip-compressed”和“application/json”。本文使用 ASP .NET Core,适用于 .NET Core 3.1、.NET 5、.NET 6和.NET 8。下载的另一种方法是附加内容处置标头。另一种方法是从文件中读取字节,但这需要更多的内存并且在处理文件时效率不高。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 1万+

光模块MCU开发全解析:从架构原理到固件调试实战

在高速光模块中,MCU并非传统印象里的核心处理器,而是负责数字诊断、闭环控制和协议管理的嵌入式管家。随着800G、1.6T模块的普及,MCU与DSP/SoC的协同、I2C总线通信、ADC采集、APC/TEC控制等低速域任务愈发关键。理解MCU的选型规格、启动流程和固件设计,是保障光模块稳定运行的基础。本文从光模块架构切入,剖析MCU的角色定位,详细拆解I2C从机实现、电芯片配置、校准与升级等工程细节,并结合实际调试经验梳理常见故障与排查思路,为嵌入式工程师提供一份可落地的光模块MCU开发指南。

weixin_29192365的博客 365

ASP.NET MVC 下载文件

使用 从 ASP.NET MVC 中的控制器下载任何文件类型FileStreamResult。注意:如果使用ASP.NET Core,请参阅此页面,如果想要将文件上传到服务器,请参阅此页面。从使用字节数组的 ASP.NET MVC 控制器下载任何数据类型。如何从 MVC 控制器(.NET Framework)下载文件。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 1万+

STM32F103 RTC闹钟唤醒Stop模式的EXTI17中断实现

本文详细介绍了STM32F103如何通过RTC闹钟触发EXTI17中断实现从Stop模式的高效唤醒。针对低功耗应用场景,提供了完整的硬件配置、CubeMX设置及代码实现方案,包括时间格式转换、中断处理和功耗优化技巧,帮助开发者可靠实现定时唤醒功能。

ol78901234的博客 231

基于TDOA的chan算法(定位算法)

Chan算法原理 TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法。 Chan算法是非递归双曲线方程组解法,具有解析表达式解,主要特点是:在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加已确定点的数量来提高算法精度。 该算法的推导前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。二维情况下,可分为只有三个点参与定

优快云不再更新 2万+

使用 ASP.NET Core 创建和下载 zip 文件

如果您要处理大型 zip 文件,将 zip 文件写入服务器上的临时文件,然后将文件流式传输到客户端可能会更有效。对于最近的一个功能,我必须从用 ASP.NET Core 编写的内部网站下载一批文件。在下载文件之前对其进行压缩,结果证明这是一种轻松实现多文件下载的好方法。.NET 提供了所有需要的功能,在本文中,我将向您展示如何实现它。在本例中,我将创建一个能够压缩和下载一些文件的端点。在现实生活中,后端通常需要输入参数才能知道要压缩什么,但为了简单起见,我将省略这部分。首先构建要压缩的文件列表。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 1万+

【干货攻略】Oracle报错篇 ORA-01378 磁盘扇区大小不兼容问题

本期将为大家分享“ORA-01378 磁盘扇区大小不兼容”报错的问题解决方案。

PWY13148的专栏 1438

如何在ASP.NET中下载文件

  这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始。当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令:  Response.Redirect("test.doc")  您可以把上面这行指令放在Button的Click事件当中,当用户点击按钮之后,网页就会被转址到该word档,造成下载的效果。  但

dotnetWalker的专栏 5543

通信算法之325:无人机云哨协议及发射机接收机仿真算法

【代码】通信算法之325:无人机云哨物理层协议及发射机接收机仿真代码。

leegang12的专栏 363

让 ABAP 复杂内表优雅“喂饱”:Complex Internal Table Filling 全面实战指南

本文为ABAP开发者系统梳理了复杂内表的填充与复制方法。重点介绍了work area的两种声明方式、APPEND操作的多形态用法及其初始值语义,以及VALUE #( )构造器的逐行与整表写法。同时讲解了CORRESPONDING的同名字段映射功能,帮助开发者在"航司与航线"等复杂业务场景中实现最佳实践。文章还涵盖内存优化、可读性建议和常见误区,提供可运行样例,适用于ABAP On-Premise和SAP BTP环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 169

ASP.NET CORE WEBAPI文件下载

最近要使用ASP.NET CORE WEBAPI用来下载文件,使用的.NET CORE 3.1。考虑如下场景: 文件是程序生成的。 文件应该能兼容各种格式。 浏览器可以感知进行下载。 准备 经过简单的调研,得到以下结论。 ASP.NET CORE 提供FileResult这种类型的ActionResult,可以直接返回文件结果,不需要直接处理HttpRespo...

主宰 3777

通过轻量级图像增强Transformer (IAT) 提升YOLOv8在低光环境下的检测性能

随着深度学习和计算机视觉的快速发展,目标检测模型在各个领域中的应用不断扩展,特别是在低照度环境下的视觉任务。YOLOv8作为当前最先进的目标检测模型之一,在高亮度和良好照明条件下表现出色,但在低照度环境下的性能存在一定的不足。为了解决这一问题,我们提出了一种轻量级的低照度图像增强网络(IAT)来改进YOLOv8的暗光检测能力。本篇文章将深入探讨这一创新改进,并附带代码实现,帮助大家更好地理解这一技术的应用和效果。

博客 1214

asp.net 下载文件几种方式

protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方

linjcai的博客 7768

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

asp.net mvc实现文件下载

前段时间一直对如何解决文件下载的问题比较困惑,对文件下载的问题一直都是用的前端的方式解决的,代码如下 //下载 function download(filePath) { window.open(filePath); } 但是这个方法有他的缺陷: 1.下载的文件后缀必须为iis程序池中存在的文件 2.此方法是通过浏览器打开服务器文件,无法直接下载 近期看了asp.net 下载文件几种方式...

詼鈦鎯的博客 2168

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ASP.NET下载文件代码

 如何通过ASP.NET来下载文件,这个问题我们经常遇到,把常用的方法总结到一起,学习学习。当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令:Response.Redirect("test.doc") 您可以把上面这行指令放在Button的Click事件当中,当用户点击按钮之后,网页就会被转址到该word档,造成下载的效果。但是这样的下载有几个问题:

寒冬玉 1838

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ASP.NET实现文件上传和下载

前端:vue2,vue3,vue-cli,html,jquery后端:asp.net,.net core数据库:SQL Server,MySQL,Oracle,达梦,人大金仓,国产数据库功能:大文件上传下载,断点续传,文件夹上传下载,加密传输,加密存储,云对象存储该说不说,最近这块挻火的,今天早上又有网友加我微信,实际上我的微信号之前就已经在网上公开了,但是很多网友还是说找不到,这个就真没办法了。

weixin_52050572的博客 997

ASP.NET实现文件下载的功能

文件下载是很多网站中含有的常用功能,在ASP.NET中可以使用FileStream类、HttpRequest对象、HttpResponse对象相互结合,实现输出硬盘文件的功能。该方法支持大文件、续传、速度限制、资源占用小。 FileStream类:MSDN上的解释为,FileStrem类对文件系统上的文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标...

weixin_34380781的博客 929

Asp.net下载文件的实例

最近在忙毕业设计的事,其中,毕业设计中有一个点击一个链接就会从服务器上下载文件,我们平常在浏览网站的时候,偶尔会下载一些资料,这一下载的功能就是我要实现的。下面先说一下我的实现思路: 使用数据库,设计了一个存储文件路径的字段,把文件所在的服务器的虚拟路径存储到数据库中;后台上传文件时,把文件拷贝到服务器的固定文件夹中,同时在数据库中添加一条虚拟存储路径的记录;当用户在前台浏览网站时,点击

紫羽风的博客 1万+
上一篇: 教你在asp.net中动态变更CSS
下一篇: asp.net实现返回上一页的6种方法
adcbefg
博客等级 码龄19年 1粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值