我有一个包含iframe的aspx页面,它显示了一个pdf(我有一个ashx处理程序在iframe中显示pdf),我还有一个下载按钮,它将一个不同的pdf作为附件发送到浏览器。 下载到浏览器代码:(这是在ashx处理程序中)
byte[] bytes = // get byte array from table
Response.Buffer = false;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
// [optional]
Response.AddHeader(
"Content-Disposition",
string.Format("attachment; filename={0}", attachmentName)
);
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.End();
此代码工作正常但是在将此响应发送到浏览器后,我的iframe变为空白,我必须刷新页面才能再次看到它。我尝试了大部分解决方案
但他们都没有工作。 iframe在chrome&amp ;;中表现良好FF。 注意:如果我使用asp下载东西:我的ashx的超链接和设置target =“_ blank”它在IE中工作正常,但我需要一些服务器端处理,因此我不能使用此方法。
答案 0 :(得分:1)
虽然Chrome和FF将页面留在那里,但这确实有意义。
您将回发到服务器,然后清除整个输出,将文件放入流中并发送。从技术上讲,我会说IE浏览页面是正确的。
这是假设您的下载按钮位于iframe中?
我会尝试的解决方案是将该下载链接放在另一个iFrame中,或者让其他页面下载它,当您按下链接时,它会打开刚刚输出文件的新页面。因此窗口闪烁但随后消失并出现保存对话框按钮。但弹出窗口拦截器可能会试图阻止它。