浏览各种解决方案以在我的ASP.NET网站(.doc
,.docx
,.pdf
等)中显示各种文档后,我遇到了一个简单而优雅的解决方案,可以节省我很麻烦:在iframe中显示文档(让浏览器工作)。
<iframe runat="server" id="foo"></iframe>
然后在代码背后:
foo.Attributes["src"] = "http://example.com/docs/koby.pdf";
问题:文档会在浏览器中提示下载,并且不会在其中显示。这是因为我的页面没有声明:
Content-Type: application/pdf
Content-Disposition: inline; filename="filename.pdf"
但话又说回来,甚至可以将这些标头属性设置为iframe吗? 有人能想出一个解决方案或更好的想法来实现这个目标吗?
答案 0 :(得分:0)
通过创建处理程序来解决问题:
<%@ WebHandler Language="C#" Class="GetDoc" %>
using System;
using System.Web;
public class GetDoc : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "Application/pdf";
context.Response.WriteFile("koby.pdf");
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}
}
将<iframe>
来源设为:
foo.Attributes["src"] = "/handlers/GetDoc.ashx";