2013-11-26 269 views
1

我的任務非常簡單,在按鈕單擊上我想在瀏覽器上顯示生成的PDF,但同時將其下載到客戶端計算機上。ASP.NET - 在瀏覽器上下載文件和顯示器

我做了2個函數,一個用於下載&其他用於在瀏覽器上顯示它。當我單獨運行它們時,它們像一個魅力一樣工作,但是當我通過按鈕單擊它們時,只有被稱爲第一個作用的另一個纔會做任何事情。

下面是下載文件的代碼。

_page.Response.Clear(); 
      _page.Response.AddHeader("Content-Disposition", "attachment; filename=payments.xls"); 
      //Download the file and prompt the user to save 
      _page.Response.BinaryWrite(data); 
      _page.Response.End(); 

下面的代碼顯示在瀏覽器

_page.Response.Clear(); 
      _page.Response.ContentType = "application/pdf"; 
      _page.Response.OutputStream.Write(_datastrem.GetBuffer(), 0, _datastrem.GetBuffer().Length); 
      _page.Response.Flush(); 

**我還要提到的是我想要做的一切,上回發。

+0

你究竟如何稱呼這些?你有沒有嘗試在瀏覽器中顯示內容,並使用iframe從中給你的客戶端文件? – Dethariel

+0

對不起,我用代碼更新了這個問題。 – KhanZeeshan

回答

1

你並不完全展示你的代碼,但是從你所描述的我可以說這是行不通的:你只能對每個HTTP響應執行一個動作。您可以將文件下載(content-disposition在瀏覽器中顯示該文件。

如果您想同時執行這兩個操作,則必須使用顯示文件的中間頁面,然後(例如使用JavaScript)執行文件下載。

+0

你能告訴我如何通過JavaScript下載文件,因爲瀏覽器會顯示pdf,所以我怎樣才能調用下載功能。 – KhanZeeshan

+0

例如,在iframe的HTML文檔中顯示PDF。 – CodeCaster

+0

我不想打開任何彈出窗口或任何我想在同一頁上顯示pdf的東西。 – KhanZeeshan