ASP.NET Response Header 使用指南:下载与重定向
本文将详细介绍如何使用ASP.NET中的`Response.AppendHeader`方法来实现各种功能,特别是与下载文件相关的操作。`Response.AppendHeader`是ASP.NET中用于向HTTP响应头添加自定义字段的方法,这对于控制客户端浏览器的行为至关重要。 1. 下载文件 在ASP.NET中,我们可以利用`Response`对象来实现文件下载功能。例如,要下载一个名为“所需文件.rar”的RAR文件,可以使用以下代码: ```c# Response.AddHeader("content-type", "application/x-msdownload"); Response.AddHeader("Content-Disposition", "attachment;filename=所需文件.rar"); Response.BinaryWrite(fileBytes); // fileBytes为文件的二进制数据 Response.End(); ``` 这里的`content-type`指定文件类型,`application/x-msdownload`适用于Windows下的可执行文件或RAR压缩包。`Content-Disposition`设置为`attachment`表示下载附件,`filename`参数指定了下载后的文件名。 2. 页面重定向 除了下载文件,`Response.AppendHeader`还可以用于页面重定向。例如,要在60秒后自动跳转到新的页面,可以使用: ```c# Response.AddHeader("REFRESH", "60;URL=newpath/newpage.asp"); ``` 这与HTML中的`<META HTTP-EQUIV="REFRESH" content="60;URL=newpath/newpage.asp">`具有相同的效果。 3. HTTP状态码设置 `Response.Status`可以用来设置HTTP状态码,如: - 302 Object Moved:表示临时重定向,可以通过`Response.AddHeader("Location", "newpath/newpage.asp")`配合使用。 - 401 Unauthorized:表示未经授权,可以添加`WWW-Authenticate`头来要求用户提供身份验证。 4. 缓存控制 `Response.AppendHeader`还可以用于控制页面缓存,例如: - 防止页面缓存:`Response.Expires = -1`,`Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1)`,`Response.AddHeader("pragma", "no-cache")`,`Response.AddHeader("cache-control", "private")`。 - 禁止缓存:`Response.CacheControl = "no-cache"`。 5. 个性化文件下载 在ASP.NET中,如果需要提供自定义大小和路径的文件下载,可以这样做: ```c# string fileName; // 文件名 string dir; // 文件存储路径 (例如:c:\aa\ddd\wj0000222.zdo) long size; // 文件大小 Response.AddHeader("content-type", "application/x-msdownload;"); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("content-length", size.ToString()); Response.WriteFile(dir, 0, size); ``` 这段代码将指定的文件以指定的文件名下载,并告知客户端文件的大小,从而允许浏览器正确显示下载进度。 `Response.AppendHeader`在ASP.NET中是一个非常强大的工具,可用于控制HTTP响应头,实现诸如下载文件、页面重定向、设置HTTP状态码、控制缓存等重要功能。开发者可以根据具体需求灵活运用,提升网站的功能性和用户体验。
Response.AddHeader(”content-type”,”application/x-msdownload”);
Response.AddHeader(”Content-Disposition”,”attachment;filename=要下载的文件名.rar”);
刷新页面
Response.AddHeader “REFRESH”, ”60;URL=newpath/newpage.asp”
这等同于客户机端<META>元素:
<META HTTP-EQUIV=”REFRESH”, “60;URL=newpath/newpage.asp”
页面转向
Response.Status = “302 Object Moved”
Response.Addheader “Location”, “newpath/newpage.asp”
这等同于使用Response.Redirect方法:
Response.Redirect “newpath/newpage.asp”
强制浏览器显示一个用户名/口令对话框
Response.Status= “401 Unauthorized”
Response.Addheader “WWW-Authenticate”, “BASIC”
强制浏览器显示一个用户名/口令对话框,然后使用BASIC验证把它们发送回服务器(将在本书后续部分看到验证方法)。
如何让网页不缓冲
Response.Expires = 0
Response.ExpiresAbsolute = Now() - 1
Response.Addheader “pragma”,”no-cache”
Response.Addheader “cache-control”,”private”
Response.CacheControl = “no-cache
应用实例:文件下载
做下载中文显示乱码怎么办
在网站上文件下载都是直接点击文件联接就行了,这种方法有几个弊端:
1. 有些文件不会下载会直接调用相应的程序打开该文件
2。不能隐藏实际文件地址。
3。不能够从数据库中动态读取文件名进行改名下载
下面是asp.net,c#代码:
string fileName;//文件在数据库中的名称
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 6
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦