- 浏览: 1661500 次
- 性别:
- 来自: 福州
-
文章分类
- 全部博客 (583)
- strust2.0 (14)
- hibernate2.0 (5)
- java (13)
- javaScript (59)
- AJAX (8)
- TFS (6)
- 其它 (20)
- CSS (23)
- asp (18)
- Dojo (5)
- 项目管理 (3)
- SQLServer (25)
- oracle (26)
- .NET (221)
- 开源系统 (6)
- 常识 (41)
- 软件架构 (1)
- My SQL (1)
- SilverLight (10)
- Flex (1)
- window7 (1)
- 网络安全 (2)
- CMS (1)
- ECShop (4)
- 邮件系统 (9)
- Linq (0)
- 淘宝店铺经营宝典 (0)
- flash插件 (1)
- Hubble.net全文检索 (1)
- 在线编辑器 (1)
- 正则表达式 (1)
- 创业 (1)
- asp.net mvc (1)
- 全文检索 (0)
- 全文检索 HubbleDotNet (1)
- Android (27)
- TFS bin (1)
最新评论
-
z小小Jean:
有具体的解决方法吗
用命名imp导入DMP时报无法解析指定的连接标识符的解决办法 -
njoiop:
这些都是常用接口,IP地址、手机归属和身份证查询接口,基站定位 ...
IP地址、手机归属和身份证查询接口 -
Fs_sky:
那导出DMP如何包含序列等其他东西?
在plsql中如何导出dmp文件 -
qiywtc:
请问该怎么判断视频的格式再选择对应的播放格式来播放啊?
asp.net各种类型视频播放代码(全) -
xinghenhouzi:
楼主说的版本不同无法导入导出是什么意思?我用10g的exp.e ...
在plsql中如何导出dmp文件
以前写过这样一篇文章(ASP.NET文件下载函数(好用的东东)),发现很多朋友询问,并且有时候会发生错误,今天我再重新更新一下,利用IHttpHandler来实现多扩展名文件下载,思路是这样:
1. 首先新建一个用于进行下载处理的page页,如download.aspx,里面什么东西也没有。
2. 添加一个DownloadHandler类,它继承于IHttpHandler接口,可以用来自定义HTTP 处理程序同步处理HTTP的请求。
3. 这里涉及到一个文件名加解密的问题,是为了防止文件具体名称暴露在状态栏中,所以添加一个FileHelper类,代码如下:
利用Base64码对文件名进行加解密处理。
4. 在Web.config上,添加httpHandlers结点,如下:
5. 现在新建一个aspx页面,对文件进行下载:
Default.aspx代码如下:
Default.aspx.cs代码如下:
这样就实现了文件下载时,不管是什么格式的文件,都能够弹出打开/保存窗口。:)
转自:http://www.cnblogs.com/liping13599168/archive/2009/02/08/1386111.html
1. 首先新建一个用于进行下载处理的page页,如download.aspx,里面什么东西也没有。
2. 添加一个DownloadHandler类,它继承于IHttpHandler接口,可以用来自定义HTTP 处理程序同步处理HTTP的请求。
public class DownloadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { HttpResponse Response = context.Response; HttpRequest Request = context.Request; System.IO.Stream iStream = null; byte[] buffer = new Byte[10240]; int length; long dataToRead; try { string filename = FileHelper.Decrypt(Request["fn"]); //通过解密得到文件名 string filepath = HttpContext.Current.Server.MapPath("~/") + "files/" + filename; //待下载的文件路径 iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); Response.Clear(); dataToRead = iStream.Length; long p = 0; if (Request.Headers["Range"] != null) { Response.StatusCode = 206; p = long.Parse(Request.Headers["Range"].Replace("bytes=", "").Replace("-", "")); } if (p != 0) { Response.AddHeader("Content-Range", "bytes " + p.ToString() + "-" + ((long)(dataToRead - 1)).ToString() + "/" + dataToRead.ToString()); } Response.AddHeader("Content-Length", ((long)(dataToRead - p)).ToString()); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(System.Text.Encoding.GetEncoding(65001).GetBytes(Path.GetFileName(filename)))); iStream.Position = p; dataToRead = dataToRead - p; while (dataToRead > 0) { if (Response.IsClientConnected) { length = iStream.Read(buffer, 0, 10240); Response.OutputStream.Write(buffer, 0, length); Response.Flush(); buffer = new Byte[10240]; dataToRead = dataToRead - length; } else { dataToRead = -1; } } } catch (Exception ex) { Response.Write("Error : " + ex.Message); } finally { if (iStream != null) { iStream.Close(); } Response.End(); } } public bool IsReusable { get { return true; } } }
3. 这里涉及到一个文件名加解密的问题,是为了防止文件具体名称暴露在状态栏中,所以添加一个FileHelper类,代码如下:
public class FileHelper { public static string Encrypt(string filename) { byte[] buffer = HttpContext.Current.Request.ContentEncoding.GetBytes(filename); return HttpUtility.UrlEncode(Convert.ToBase64String(buffer)); } public static string Decrypt(string encryptfilename) { byte[] buffer = Convert.FromBase64String(encryptfilename); return HttpContext.Current.Request.ContentEncoding.GetString(buffer); } }
利用Base64码对文件名进行加解密处理。
4. 在Web.config上,添加httpHandlers结点,如下:
<system.web> <httpHandlers> <add verb="*" path="download.aspx" type="DownloadHandler" /> </httpHandlers> </system.web>
5. 现在新建一个aspx页面,对文件进行下载:
Default.aspx代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>文件下载</title> </head> <body> <form id="form1" runat="server"> <div> <asp:HyperLink ID="link" runat="server" Text="文件下载"></asp:HyperLink> </div> </form> </body> </html>
Default.aspx.cs代码如下:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string url = FileHelper.Encrypt("DesignPattern.chm"); link.NavigateUrl = "~/download.aspx?fn=" + url; } }
这样就实现了文件下载时,不管是什么格式的文件,都能够弹出打开/保存窗口。:)
转自:http://www.cnblogs.com/liping13599168/archive/2009/02/08/1386111.html
- DownloadSolution.rar (180.1 KB)
- 下载次数: 13
发表评论
-
【转】C#定时执行某个程序
2015-03-16 17:33 749using System; using System. ... -
多行文本框字符数长度验证的解决方案
2012-03-02 16:04 1222在ASP.NET系统中经常会遇到验证文本框长度,比如数据库里是 ... -
【转】asp.net(c#)通过两个点的经纬度计算距离
2012-01-12 14:14 1392原理: 地球赤道上环绕地球一周走一圈共40075.04公里 ... -
【转】GSM手机短信软件的实现(C#)
2011-11-30 13:55 1334http://www.cnblogs.com/Engin/ar ... -
[转]C#开发短信收发软件的原理
2011-11-16 16:44 1662坛子里好像很多人对如何自己用C#开发手机短信有兴趣,正好我也做 ... -
TCPClient 类实现网络互联、通信
2011-10-29 11:16 2955TcpClient 为 TCP 网络服务提供客户端连接。 S ... -
Hubble.Net实现全文检索
2011-07-25 19:30 4062一、 下载安装 到Hubble.net 项目首页 http: ... -
c# 获取当前周第一天、最后一天,当前月第一天、最后一天的实现代码
2011-04-17 18:39 5322获取当前周工作日第一天、最后一天 int dayOfWee ... -
c#通过调用7z.exe实现解压文件
2011-03-05 15:47 48477-Zip 简介 7-Zip 是一款号称有着现今最高压缩比的 ... -
【转】IEnumerable 和 IEnumerator 接口
2011-03-04 17:12 2041类继承关系:public interface IQueryab ... -
【转】C#获取文件的绝对路径
2011-03-04 17:08 2508要在c#中获取路径有好多方法,一般常用的有以下五种: ... -
ListBox之间的数据项的移动操作
2010-09-29 11:04 1569<%@ Page Language="C# ... -
【转】asp.net中URL参数传值中文乱码的三种解决办法
2010-09-21 22:31 3437在做Asp.Net开发的时候,经常会遇到页面乱码的问题,下面是 ... -
【转】ASP.NET文件下载函数
2010-09-21 22:29 1428在你的Page_Load中添加这样的代码: Page.Re ... -
【转】在ASP.NET中实现多文件上传
2010-09-21 22:25 1261在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET ... -
[转]ASP.NET中常用的文件上传下载方法
2010-09-21 22:23 1828文件的上传下载是我们在实际项目开发过程中经常需要用到的技 ... -
HTML文章中截取摘要的问题[转]
2010-06-09 10:46 1891博客系统通常的做法是,在博客的首页只显示文章的摘要,点击标题进 ... -
获取 asp:Button 控件的的ComandName值的方法
2010-05-22 17:31 1270protected void btn_Save_Click ... -
ASP.NET防止用户多次登录的方法
2010-05-06 12:34 1586常见的处理方法是,在 ... -
使用 Enter 键提交表单
2010-04-27 14:04 1353一、使用 JS 代码 我们在表单里面的 TextBox (as ...
相关推荐
2. **Web.Config配置文件**:这是ASP.NET应用程序的核心配置文件,用于存储整个应用的配置信息,包括应用程序的运行时设置、连接字符串、路由规则、安全设置等。 3. **IIS(Internet Information Services)**:它...
### ASP.NET 下结合 HttpHandler 实现图片防盗链 在 Web 开发中,图片防盗链是一项重要的功能,可以有效防止其他网站未经许可直接引用本站点的图片资源,从而避免带宽和服务器资源被不当占用。ASP.NET 提供了多种...
标签“ashx”是ASP.NET中HTTPHandler的文件扩展名,它代表了一个无固定格式的HTTPHandler处理程序。`.ashx`文件是一种文本文件,通常包含C#或VB.NET代码,用于定义和实现HTTPHandler类。当你在web.config文件中配置...
在ASP.NET中,每个请求都可以由一个或多个HttpHandler来处理。HttpHandler实现了`IHttpHandler`接口,它包含两个方法:`ProcessRequest`和`IsReusable`。 - **HttpModule**:提供了一种在请求处理管道的不同阶段...
4. 实施安全措施,如检查文件类型、大小以及是否允许上传的扩展名。 5. 在图片预览后,记得清理临时文件或过期的预览图片。 综上所述,ASP.NET图片预览功能的实现涉及客户端与服务器端的交互,需要掌握HTML5的File ...
这里,`path` 属性定义了要处理的文件扩展名,`verb` 属性表示所有访问方式(GET、POST 等),`type` 属性指定了处理程序的全名,包括命名空间、类名和程序集名称。 5. 运行与测试: 保存 `Web.config` 修改后,...
通过上述方法,我们可以看到在 ASP.NET 中通过 `HttpHandler` 和 `HttpModule` 实现类似 AOP 的功能是完全可行的。这种方式不仅可以帮助开发者更好地组织代码结构,还能有效减少代码冗余,提高系统的可维护性和扩展...
对于"asp.net ICSharpCode.SharpZipLib.Zip 压缩"的主题,我们将探讨如何在ASP.NET应用中利用这个库进行文件的压缩操作。 首先,要在ASP.NET项目中使用ICSharpCode.SharpZipLib,你需要通过NuGet包管理器将该库添加...
本文将详细介绍ASP.NET中如何利用HttpHandler实现防盗链,以确保网站资源的安全。 #### 二、理解防盗链与HttpHandler 防盗链,顾名思义,就是防止其他网站未经许可直接链接并使用本网站的资源(如图片、视频等),...
对于非.aspx扩展名的URL,可能需要设置IIS的配置,或者创建对应的目录和默认文件来确保请求能被处理。不过,这种全盘交给ASP.NET处理的策略可能会带来额外的性能开销。 总的来说,ASP.NET的URL重写技术提供了丰富的...
HttpHandler 是 ASP.NET 中处理请求的另一种方式,它可以针对特定的 URL 或扩展名进行操作。例如,你可以创建一个处理器来接收 "news/" 开头的 URL,并将其转换为实际的新闻详情页。 6. **案例分析**: 提供的链接...
开发者可能会使用HttpHandler或者Web服务(ASMX)来处理定时任务,或者利用ASP.NET的Application或Session对象存储全局状态信息。 描述中提到的"ASP闹钟程序"很可能涉及到以下几个关键知识点: 1. **ASP.NET Web ...
### 优秀 ASP.NET 及 WinForm 开发人员所需掌握的核心知识点 ...通过掌握以上知识点,一个 ASP.NET 或 WinForm 开发人员不仅能够熟练地拖放控件,还能够在复杂的项目中发挥更大的作用,成为一名真正的专家级开发者。
在ASP.NET 2.0中,可以创建自定义用户控件、HttpModule和HttpHandler来实现模块化。理解这些组件的工作原理及其在应用程序中的作用,对于设计可扩展和维护性强的Web应用至关重要。 3. 控件技术:ASP.NET 2.0提供了...
.NET中实现无后缀名的Web访问,实际上是指不通过传统的Web请求文件扩展名,而是利用HTTP处理程序(HttpHandler)来处理请求。这在构建RESTful服务或需要隐藏文件后缀的URL时非常有用。在.NET框架中,HttpHandler是一...
在ASP.NET中,可以使用`RouteTable.Routes`进行URL重写,或者使用第三方库如`MvcRoutingShim`来实现无扩展名的URL重写。源码示例可以帮助我们更好地理解这些概念和实践。 总之,ASP.NET生成静态页面是一个涉及多...
5. **路由**:虽然ASP.NET 3.5不直接支持路由,但可以通过自定义HttpHandler或使用第三方库实现简单的URL重写,为Web Forms应用提供更友好的URL结构。 6. **安全性**:学习如何设置身份验证和授权,例如Windows身份...
在ASP.NET中实现多文件上传是一项常见的功能,它允许用户一次性上传多个文件,极大地提高了用户体验。这个过程涉及到HTML表单、JavaScript验证、以及服务器端的处理。以下将详细讲解实现这一功能的关键步骤。 首先...
ASP.NET 2.0新增了50多个新服务器控件,类的数量也翻了一倍,其他许多方面也有很大的变化。本书介绍了ASP.NET 2.0中的每个新增特性和功能,以便读者把这些新技术应用于实践。.. 本书主要内容 ● 服务器控件的...
在本文中,我们将深入探讨如何在ASP.NET环境中利用jQuery Uploadify 3.2插件实现文件上传功能。jQuery Uploadify是一款流行的JavaScript库,它提供了一种直观、用户友好的方式来处理多文件上传,适用于各种Web应用...