2010-02-23 97 views
5

我有一個帶有iframe的ASP.NET頁面,用於在此頁面上顯示一些pdf報告。 當用戶從下拉菜單中選擇報表類型時,我將需要的報表數據添加到ASP.NET會話中,並將iframe的屬性「src」更改爲生成.pdf報表的.ashx模塊地址。 但是,如果Adobe瀏覽器中沒有安裝Adobe瀏覽器查看.pdf文件,瀏覽器建議保存報告文件,並且建議文件的名稱爲「HandlerName.ashx」。 但我想讓瀏覽器建議保存名爲「Report.pdf」的文件。我可以這樣做嗎?有沒有解決方法?使用ASP.NET .ashx模塊下載文件

+0

關注。這是需要顯示生成的.pdf文件,以防Adobe插件安裝... – w1z

回答

4

嘗試在線內容處置,但我要檢查這一點:

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

Mike,這很棒。謝謝您來自GlobalLogic的哈爾科夫。 Миртесен;) – w1z

+0

:),但據我所知,這將無法正常工作...Актотыконкртейней? –

+0

我會玩這個解決方案,但似乎它不起作用...「тіснішенемаєвжекуди:D」 –

7

添加下列頭在你的ashx文件:

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

+1爲更快:) – Diadistis

+0

在這種情況下,瀏覽器建議在Adobe插件安裝時下載文件... – w1z

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();