2014-03-13 92 views
0

嗨我從我的ASP.NET網頁下載文件時遇到問題。 我創建了下面的代碼在ASP.NET中下載文件

FileInfo hello = new FileInfo(Server.MapPath(@".\hello.zip")); 
Response.Clear(); 
Response.ContentType = "application/zip"; 
Response.AddHeader("content-disposition", "attachment; filename=" + hello.FullName); 
Response.WriteFile(hello.FullName); 
Response.Flush(); 
Response.End(); 

當我把上面的代碼在按鈕的代碼運行的單擊事件,但不能下載真正開始。當我在page_load事件中移動相同的代碼塊時,所有功能都可以使用。你有任何線索爲什麼會發生這種情況?

感謝 山姆

+0

我剛剛在我的viusal工作室試過它,它在按鈕單擊和page_Load上工作。也許這是別的? – kobe

+1

我會用'hello.Name'替換'hello.FullName',這樣你就不會有任何愚蠢的文件名傳到你的客戶端。我也成功地在Asp.NET中創建了三個文件下載的例子,包括像你的代碼示例,MVC(只需要一行,簡單)的Web窗體,以及一個簡單的錨標籤,其中href屬性設置爲資源。考慮一下,如果你真的需要服務器代碼來傳遞zip文件,並且可以隨時索要我的示例。 –

回答

0

我發現了問題。我們正在使用Telerik UI控件,其中包括一個Ajax管理器。爲了解決這個問題,我發現我必須編寫一個javaScript函數來禁用按鈕上的Ajax(從而導致整個頁面回發,允許在瀏覽器窗口中打開該文件),我還必須在Ajax管理器中添加一個條目該按鈕應該更新自己。

謝謝