`
raisun_1988
  • 浏览: 117888 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

    博客分类:
  • .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文件下载函数有所帮助。

分享到:
评论

相关推荐

    ASP.NET网络数据库安全性浅析

    ASP.NET是微软开发的一种用于构建动态网站、web应用和web服务的框架。在涉及网络数据库安全性的...通过阅读"ASP.NET网络数据库安全性浅析.pdf"这样的资料,可以进一步了解并掌握这些关键技术点,从而提升应用的安全性。

    浅析基于asp.net的网站安全漏洞及防范_.netPDF_.net_

    防止XSS攻击,开发者应启用ASP.NET的内置XSS防护,如HttpEncoder.HtmlEncode()函数进行输出编码;同时,对用户提交的内容进行过滤或转义。 三、跨站请求伪造(CSRF) CSRF攻击利用了浏览器的同源策略漏洞,诱使用户在...

    【ASP.NET编程知识】浅析Repeater控件的使用 (原样导出和动态显示隐藏Repeater中的列).docx

    ASP.NET中的Repeater控件是一种非常...Repeater控件的灵活性和可扩展性使其在ASP.NET开发中成为强大的工具,能够根据具体需求定制复杂的数据展示效果。理解并熟练运用以上技巧,将有助于提升Web应用的数据呈现能力。

    ASP.NET笔试题浅析

    【ASP.NET笔试题浅析】 ASP.NET笔试题涵盖了C#和.NET框架的基础知识,以及ASP.NET应用程序开发的关键概念。以下是一些重点知识点的详细解析: 1. **类和结构的区别**: - 类是引用类型,结构是值类型。这意味着类...

    浅析PHP与ASP.NET的优劣性.pdf

    浅析PHP与ASP.NET的优劣性 文章概要:本文将对比 PHP 和 ASP.NET 的优劣性,探讨两个技术的特点和缺陷,从而帮助开发者选择合适的技术来实施项目。 一、ASP.NET 的优劣性 ASP.NET 是一个完整的框架,提供了真实的...

    asp.net 购物车的实现浅析

    - 使用`&lt;asp:ListView&gt;`服务器控件来展示购物车中的物品列表,这比传统的字符串拼接方式更加易于维护和管理。 - 在`&lt;asp:ListView&gt;`控件中,`&lt;LayoutTemplate&gt;`定义了整体布局,而`&lt;ItemTemplate&gt;`定义了每一项...

    Asp.net core2.0快速入门笔记(又名七日速成)

    - 下载并安装 ASP.NET Core 2.0 SDK。 - 配置开发环境。 **1.3 创建 ASP.NET Core 应用程序** - **控制台应用**: - 命令行操作: 使用 `dotnet new console` 创建新项目。 - 修改 `Program.cs` 文件以运行程序。...

    浅析ASP.NET生成随机密码,可以实现网上通过邮箱激活功能

    本文将重点介绍如何在ASP.NET框架下实现这一功能。 #### ASP.NET简介 ASP.NET是由微软开发的一款用于构建动态Web应用程序的服务器端技术。它基于.NET Framework,并支持多种编程语言,如C#、VB.NET等。ASP.NET提供...

    ASP.NET4的自动启动特性浅析

    自动启动,先行初始化web应用,而不必等待外部客户端访问web服务器时才启动的能力。...今天使用 ASP.NET 的开发人员经常使用应用的Global.asax 文件中的 “Application_Start”事件处理函数来做这些工作

    ASP.net的验证控件浅析

    在服务器端,开发者可以提供一个与之关联的函数(在本例中为ValidateName),该函数将执行实际的验证检查。 例如,开发者可能希望检查用户名是否已被注册,这通常涉及到数据库查询。使用CustomValidator,可以这样...

    浅析ASP.NET生成随机密码函数

    实现ASP.NET生成随机密码功能是很容易的,下面的代码给出了完整的实现方法: 代码如下: publicstaticstringMakePassword(stringpwdchars,intpwdlen) { stringtmpstr=””; intiRandNum; Randomrnd=newRandom(); for...

    ajax全集--教你学会使用ajax

    本文将深入探讨Ajax的核心概念、使用方式,以及在ASP.NET环境中使用AjaxPro.dll框架的实践。 ### 1. Ajax核心概念 - **异步通信**:Ajax的核心是异步,意味着用户可以继续与网页交互,而无需等待服务器响应。 - **...

    asp.net下利用js实现返回上一页的实现方法小集

    以上介绍了六种在 ASP.NET 中使用 JavaScript 实现返回上一页的方法。每种方法都有其适用场景和特点,开发者可以根据实际需求选择合适的方法来实现所需功能。对于需要保留表单数据的情况,推荐使用 `history.back()`...

    浅析.Net Core中Json配置的自动更新

    这个特性在ASP.NET Core框架中被广泛使用,通过`AddJsonFile`扩展方法实现。下面我们将深入探讨`AddJsonFile`的工作原理以及`ReloadOnChange`如何实现。 首先,我们来看`AddJsonFile`的基本用法。在ASP.NET Core的...

    浅析Ajax后台success传来json数据的问题.docx

    当使用ASP.NET的普通页面(aspx)时,服务器端可以直接返回JSON格式的数据。在jQuery的Ajax请求中,`dataType`设置为"json",后台代码如示例所示,直接将JSON字符串写入响应流,前端的success回调中的`data`参数...

    浅析依赖注入框架Autofac的使用

    6. 常用扩展:Autofac与其他技术(如ASP.NET MVC、Web API、WCF等)有很好的集成,可以通过特定的扩展方法方便地配置和使用。 总结,依赖注入框架Autofac提供了一种优雅的方式来管理和解耦代码中的依赖关系,提高了...

    arcGIS培训资料

    这部分内容涉及arcGIS Server与.NET环境的集成,讲解如何使用ArcGIS Server Web ADF(Application Development Framework)和ASP.NET AJAX构建Web GIS应用。学习者将学习到如何利用这些技术开发交互式、高性能的...

    浅析Repeater控件的使用 (原样导出和动态显示/隐藏Repeater中的列)

    在ASP.NET开发中,Repeater控件是一种非常实用的服务器控件,用于呈现数据源中的数据,具有高度自定义的灵活性。本篇文章主要探讨了如何使用Repeater控件进行原样导出数据以及如何动态地显示或隐藏Repeater中的列。 ...

Global site tag (gtag.js) - Google Analytics