C#学习教程:ASP.NET如何将文件流式传输给用户在进行了更多的谷歌搜索和研究之后,很明显我没有看到将Byte[]发送回客户端的通用方式。我将在下面留下代码示例,但我想知道行业标准是做什么的。字节[]myBytes=GetReportBytes();HttpContext.Current.Response.ClearContent();HttpContext.Current.Response.AppendHeader("内容长度",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();//证书修复//HttpContext.Current.Response.End();我不调用Response.Close()或Response.End()。Response.End()将在此时停止页面执行/呈现。Response.End()代码将不会运行。响应在此时终止,并且没有进一步的输出添加到流中。Response.Close()类似于Response.End(),但允许在调用代码之后执行代码(但页面响应中不能发送更多输出)。Response.Flush()将任何剩余的响应项发送到页面。来自IIS核心团队成员:Response.Close向客户端发送一个重置数据包,在错误情况以外的任何情况下使用它都会导致各种问题-例如,如果您与具有足够延迟的客户端通信,则重置数据包可能会导致在服务器、客户端或中间某处缓冲的任何其他响应数据被删除。在这种特殊情况下,压缩涉及在响应中找到常见模式,并且压缩代码必须缓冲一定数量的响应以增加找到更长重复模式的机会——这部分缓冲区不能在Response.Close()中完成.简而言之,不要使用Response.Close()。以上就是C#学习教程:ASP.NET如何流式传输文件给用户共享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
