使用ASP.NET .ashx模块下载文件

时间:2010-02-23 11:10:21

标签: c# asp.net pdf download ashx

我有一个带有iframe的ASP.NET页面,用于在此页面上显示一些pdf报告。 当用户从下拉列表中选择报告类型时,我将报告数据所需的内容添加到ASP.NET会话中,并将iframe的属性“src”更改为生成.pdf报告的.ashx模块地址。 但是如果没有安装用于查看浏览器中的.pdf文件的Adobe glug-in,则浏览器建议保存报告文件,并且建议文件的名称为“HandlerName.ashx”。 但我想建议浏览器保存名为“Report.pdf”的文件。我可以这样做吗?有没有解决方法?

3 个答案:

答案 0 :(得分:7)

在ashx文件中添加以下标题:

context.Response.AddHeader("content-disposition", "attachment;filename=PUTYOURFILENAMEHERE.pdf");
context.Response.ContentType = "application/pdf";

答案 1 :(得分:4)

尝试内联内容处理,但我必须检查:

Response.ContentType = "application/pdf"; 
Response.AppendHeader("content-disposition", "inline; filename=" + name ); 

答案 2 :(得分:3)

Use     


 Response.Clear();
 Response.ContentType = "application/octet-stream";
 Response.AddHeader("Content-Disposition", "attachment; filename=Report.PDF");                                            
 Response.WriteFile(Server.MapPath("~/YourPath/Report.PDF"));
 Response.End();