c# – ASP.NET如何将文件流式传输给用户
最初我试图找出Response.Close和Response.End之间的区别,但是在进行了更多的谷歌搜索和研究后,很明显我没有看到Byte []被发送回客户端的常见方式.我将在下面留下代码示例,但我想知道行业标准是做什么的.
Byte[] myBytes = GetReportBytes(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AppendHeader("content-length",myBytes.Length.ToString()); HttpContext.Current.Response.AppendHeader("content-Disposition","attachment;filename=" + this.ReportFileName + GetReportExtension()); HttpContext.Current.Response.ContentType = GetApplicationContentType(); HttpContext.Current.Response.BinaryWrite(myBytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); //CERT FIX //HttpContext.Current.Response.End(); 解决方法
我不会调用Response.Close()或Response.End().
Response.End()将在此时停止页面执行/呈现.将不会运行Response.End()之后的代码.响应在该点终止,没有进一步的输出添加到流. Response.Close()类似于Response.End(),但允许在调用代码后执行代码(但在页面响应中不能再发送输出). Response.Flush()将任何剩余的响应项发送到页面. 从IIS core team member:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |