-1

我有来自 .ashx 文件的以下代码行。

 public void ProcessRequest (HttpContext context)
  {
    string hstr = @"Data Source=SUMAN-PC\SQLEXPRESS;Initial Catalog=school;Integrated  Security=True";
    SqlConnection con = new SqlConnection(hstr);
    string ms = context.Request.QueryString["id_image"].ToString();
    con.Open();
    SqlCommand cmd = new SqlCommand("select img from class where classid=" + ms, con);
    SqlDataReader dr = cmd.ExecuteReader();
    dr.Read();
    context.Response.BinaryWrite((Byte[])dr[0]);
    context.Response.End();
}

经过一些研究,我发现了这个

“BinaryWrite 方法无需任何字符转换即可将特定数据发送到当前 HTTP 输出。”

这是什么意思?它如何将数据发送到 http 输出?HTTP 输出在哪里?

4

1 回答 1

2

在这种情况下context.Response,是一个流,它表示正在发送到发出 http 请求的客户端(很可能是 Web 浏览器)的数据。 Context.Response由幕后的 ASP“引擎”自动提供给您。您写入该流的任何内容最终都会发送到浏览器。

通用 http 处理程序会自动为您提供一个名为 的 HttpContext 实例Context。HttpContext 包含两个名为 Request 和 Response 的属性,它们允许您访问通用处理程序正在服务的请求和相应的响应。处理程序应该做它需要做的任何处理,并通过将它的回复写入响应流来发送结果。

于 2014-07-07T04:33:20.660 回答