从ASP.NET 3.5网站向IE推出PDF文件
我的应用程序将PDF文件推出到弹出窗口(例如,无菜单/工具栏)浏览器窗口(响应用户单击按钮)。这适用于除IE7之外的所有浏览器。在IE7中,我得到的只是一个空白窗口 以下是推出PDF的服务器端代码:从ASP.NET 3.5网站向IE推出PDF文件,asp.net,internet-explorer,.net-3.5,pdf,Asp.net,Internet Explorer,.net 3.5,Pdf,我的应用程序将PDF文件推出到弹出窗口(例如,无菜单/工具栏)浏览器窗口(响应用户单击按钮)。这适用于除IE7之外的所有浏览器。在IE7中,我得到的只是一个空白窗口 以下是推出PDF的服务器端代码: private void StreamPDFReport(string ReportPath, HttpContext context) { context.Response.Buffer = false; context.Response.Clear(); context.
private void StreamPDFReport(string ReportPath, HttpContext context)
{
context.Response.Buffer = false;
context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();
// Set the appropriate ContentType.
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("Content-Disposition", "inline; filename=Report.pdf");
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Write the file directly to the HTTP content output stream.
context.Response.WriteFile(ReportPath);
HttpContext.Current.ApplicationInstance.CompleteRequest();
//context.Response.End();
}
在客户端,当用户按下按钮时,onClick处理程序中会发生以下情况:
onclick=“window.open('RptHandler.ashx?RptType=CaseInfo','Report','top=10,left=10,width=1000,height=750')
我是否缺少一些真正基本的东西?为什么它在每个浏览器中都能工作,但在IE中却不能工作?在IE7中,我们发现您需要为发送的PDF大小添加一个额外的标题“内容长度”。例如:
Response.AddHeader(“content length”,即{size of the pdf});以下语句导致IE不显示pdf:
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
不确定原因。看起来像是
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
仅在使用IIS7时有效
我将它改为
context.Response.AddHeader(“缓存控制”,“无缓存”);
并且它似乎与IE7和IE8一起工作。你说的是真的,但不是真的。