今天在做文件下载功能用到的是response的方法,首先我们要了解这些方法的作用。

1.response.write():将信息写入http响应输出流。

2.response.Flush:向客户端发送当前所有缓冲的输出

3.response.end:将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发EndRequest事件。

4.response.Close:关闭到客户端的套接字连接。

看到这里,我们应该可以想到response实现下载的基本思想:

1.将我们要下载的文件信息写入Http的响应输出流(response.write)

下面我们就可以向客户端输出了,但是要注意在此会有2种方法:1.response.Flush 2.response.end

1.我们使用response.Flush()方法时,就要多一步动作就是关闭/停止输出,为什么要做关闭/停止输出?因为不做这一步就会把整个页面的信息全部输出了,这个不是我们所需要的,所以可以使用【response.End网上都建议用它】或【reponse.Close这个方法的用法我在网上搜了好久都说尽量不用它】

2.使用response.End方法时,我们可以不使用response.Flush的方法了。

注意:上面所说的是我本地调试通过的两种方法

1.使用Flush和Close可以通过并且没有报错的

2.使用End方法也是可以的

3.使用Flush和End我感觉多余但是也是可行的

此文是自己总结,如有错误还望高手指出,大家共同学习

              string l_strFileName = "FileName";
byte[] l_bytFileData = 把文件转换成Byte类型;
HttpContext.Current.Response.Clear();
l_strFileName = System.Web.HttpUtility.UrlEncode(l_strFileName);
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + l_strFileName);
if (l_bytFileData.Length == 0)
{
l_bytFileData = System.Text.Encoding.Unicode.GetBytes(" ");
}
HttpContext.Current.Response.BinaryWrite(l_bytFileData);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();

  

response.Close、response.End、response.Flush区别的更多相关文章

  1. response常见应用、response细节、输出随机图片、定时刷新网页

      response常见应用 向客户端输出中文数据 分别以OutputStream和PrintWriter输出 多学一招:使用HTML语言里面的<meta>标签来控制浏览器行为 思考:用O ...

  2. PHP的ob_flush()与flush()区别

    PHP的ob_flush()与flush()区别 标签: php ob-flush flush buffer 2017年03月24日 17:50:393248人阅读 评论(0) 收藏 举报  分类: ...

  3. response.Close、response.End、response.Flush区别(下载文件)

    今天在做文件下载功能用到的是response的方法,首先我们要了解这些方法的作用. 1.response.write():将信息写入http响应输出流. 2.response.Flush:向客户端发送 ...

  4. response.redirect 与location.href 的区别

    最近做项目时发现,先弹出提示框,再跳转页面 这样写:Jscript.Alert("你好,Hello!"); Response.Redirect("/index.aspx& ...

  5. response.sendRedirect()与request.getRequestDispatcher().forward()区别

    Servlet中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳 ...

  6. 关于Response.Redirect和Server.Execute的区别

    Server.Transfer("path")内部重定向请求,是服务器内部的接管,浏览器无法意识到这个接管的发生,浏览器地址栏也不会发生变化.而Response.Redirect( ...

  7. 转response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  8. 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...

  9. response.sendRedirect(location)与rd.forward()区别

    在Java Web开发中,经常会用到跳转页面的方法,一般有下面两种方法. HttpServletResponse response = new HttpServletResponse(); respo ...

随机推荐

  1. hibernate框架配置文件详解

    1 orm元数据配置文件(映射文件) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hib ...

  2. PHP一维数组去重方法array_unique()

    array_unique() :去除数组中的重复项,只适用于一维数组 它不像 sort()方法, eg:  $arraytest = array('tommy','tommy','abcd'); so ...

  3. [转]MVC+JQuery validate实现用户输入验证

    本文转自:http://www.cnblogs.com/ahui/archive/2010/10/08/1845677.html MVC服务器端: 1.在controller中验证用户输入,如果验证失 ...

  4. linux安装git、node、pm2

    一.安装Git 下载:# wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz 解压:# tar -zxvf git-2. ...

  5. kafka自定义序列化器

    <kafka权威指南> Customer.java public class Customer { private int customId; private String custome ...

  6. Android DataBinding实现地址三联动

    这篇文章主要是写关于Android实现地址三联动的功能,现在附上demo地址:https://github.com/qiuyueL/NewAddressDemo,里面会有详细的注释,以及控件的使用,其 ...

  7. 【代码笔记】XML深入学习:DTD约束与DTD语法(2)

    DTD语法之定义实体(了解即可) 实体分为一般实体和参数实体. 定义实体:定义变量 引用实体:使用变量 一般实体:定义实体在DTD中,实体引用在xml中. 参数实体:定义实体在DTD中,实体引用在DT ...

  8. html的标签(1)

    首先补充上一次没有讲到的,html文件后缀名有2种,一种是.htm,一种是.html..html是老的教科书里面的文件后缀名,.html是新的教科书的文件后缀名..htm文件是不完整的支持html5的 ...

  9. PLSQL Developer乱码

    1.select * from v$nls_parameters 查询nls的参数,获得数据库服务器端的字符编码 NLS_LANGUAGE NLS_CHARACTERSET 2.修改本地环境变量,设置 ...

  10. HQL(Hibernate Query Language)

    1. NativeSQL > HQL > EJB QL(JP QL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)2 ...