Response.AddHeader小结

(一)文件下载,指定默认名

Response.AddHeader("content-type","application/x-msdownload");

Response.AddHeader("Content-Disposition","attachment;filename = 要下载的文件名.后缀名");

(二)刷新页面

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";

注意:

Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)

服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:

Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");

备注:这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了。

Content-Disposition就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名。具体的定义如下:

content-disposition = “Content-Disposition” “:”

disposition-type *( “;” disposition-parm )

disposition-type = “attachment” | disp-extension-token

disposition-parm = filename-parm | disp-extension-parm

filename-parm = “filename” “=” quoted-string

disp-extension-token = token

disp-extension-parm = token “=” ( token | quoted-string )

那么由上可知具体的例子:

Content-Disposition: attachment; filename=“filename.xls”

当然filename参数可以包含路径信息,但User-Agnet会忽略掉这些信息,只会把路径信息的最后一部分做为文件名。当你在响应类型为application/octet- stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个”文件下载”的对话框,接下来就是由你来决定“打开”还是“保存” 了。

注意事项:

1.当代码里面使用Content-Disposition来确保浏览器弹出下载对话框的时候。 response.addHeader("Content-Disposition","attachment");一定要确保没有做过关于禁止浏览器缓存的操作。如下:

response.setHeader("Pragma", "No-cache");

response.setHeader("Cache-Control", "No-cache");

response.setDateHeader("Expires", 0);

不然会发现下载功能在operafirefox里面好好的没问题,在IE下面就是不行,就是找不到文件。

时间: 2024-08-05 11:19:19

Response.AddHeader小结的相关文章

Response.AddHeader使用实例

Response.AddHeader使用实例 1.文件下载,指定默认名 Response.AddHeader("content-type","application/x-msdownload"); // 限制类型 Response.AddHeader("Content-Disposition","attachment;filename=文件名称.rar");// 下载后的文件名称 2.刷新页面 Response.AddHead

将一个文件作为下载的形式打开【下载文件】,添加报文头context.Response.AddHeader(&quot;Content-disposition&quot;, &quot;attachment; filename=&quot;

<1> HTMLPage1.htm页 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <a href="下载Handler1.ashx">下载</a> </body> </html> 下载Handler1.ashx.cs

java文件下载设置中文名称(response.addHeader)

1 protected void doPost(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 String browser = ""; 4 String fileName = "测试.txt"; 6 try { 7 browser = request.getHeader("User-Agent"

【转】解决response.AddHeader(&quot;Content-Disposition&quot;, &quot;attachment; fileName=&quot; + fileName) 中文显示乱码

如果fileName为中文则乱码.解决办法是 方法1: response.setHeader("Content-Disposition", "attachment; fileName=" + java.net.URLEncoder.encode(fileName, "UTF-8"));下载的程序里有了上面一句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文.但是文字只要超过17个字,就不能下载了.一. 通过原来的方式,也

网页刷新页面方法小结

1.页面自动刷新:把如下代码加入<head>区域中 <meta http-equiv="refresh" content="20"> 其中20指每隔20秒刷新一次页面. 2.页面自动跳转:把如下代码加入<head>区域中 <meta http-equiv="refresh" content="20;url=https://www.baidu.com/"> 其中20指隔20秒后跳转

重温Servlet学习笔记--response对象

在用户浏览网页时,服务器对于客户端浏览器做出的响应被封装成一个HttpServletResponse对象,要对浏览器操作只需要操作这个response对象即可.response的功能分类及介绍: 响应正文 response是响应对象.向客户端输出响应正文(响应体)可以使用response的响应流,response提供了两个响应流对象: PrintWriter printWriter = response.getWriter();  只能写字符流,如输出text信息 ServletOutputSt

Request和Response详解

转自:http://zhidao.baidu.com/link?url=8BI0cjlcFdBSJKHTZlpo874eqtbTJoZfrh3miQgM_05RvSER8skPiBc1wSPZtXT8OGGCHfVXFAzAosa6E5HBl_ 内置对象request:请求对象request.getParameter("名字") 获得客户端输入的信息***************request.getParameterValues("名字") 获得客户端输入的一组信

ajax提交 的编码小结

今天用ajax的post方法提交数据给webservice,由于有email的缘故发现,注册方法调用总是报错,打开报文一看提交的 发现@符号被变成了%40 , [email protected] 即abc%40126.com.开始我还以为他没有编码.后来百度搜索发现.  他默认是进过urlencode编码. 为什么PHP接收到的$_POST数据里的邮箱符号@变成了%40 好像因为表单提交过来的数据会进行urlencode,你可以在php后台用urldecode看看,是否一致后来在发布端用http

浏览器缓存知识小结及应用

阅读目录 1. 浏览器缓存基本认识 2. 强缓存的原理 3. 强缓存的管理 4. 强缓存的应用 5. 协商缓存的原理 6. 协商缓存的管理 7. 浏览器行为对缓存的影响 浏 览器缓存,也就是客户端缓存,既是网页性能优化里面静态资源相关优化的一大利器,也是无数web开发人员在工作过程不可避免的一大问题,所以在产品开发的 时候我们总是想办法避免缓存产生,而在产品发布之时又在想策略管理缓存提升网页的访问速度.了解浏览器的缓存命中原理,是开发web应用的基础,本文着眼 于此,学习浏览器缓存的相关知识,总