2011-01-05 66 views
0

我想要提示用戶下載文件,一旦他們接受就生成文件,並在完成傳輸後刪除文件(如果他們接受下載)。在ASP.NET中生成的文件託管

有沒有人知道c sharp或html代碼來實現這樣的事情?

感謝。

+1

它是什麼類型的文件? – 2011-01-05 22:36:09

+0

這是一個csv文件 – user420667 2011-01-05 22:38:22

回答

1

當用戶接受下載(即點擊一個按鈕):

  1. 生成CSV文件,並將其保存到臨時文件夾(使用File類的工具方法來獲得臨時路徑)

  2. 使用

    Response.ContentType =「text/csv」; Response.AppendHeader(「Content-disposition」,「attachment; filename = file.csv」);

  3. 呼叫Response.WriteFile傳遞文件路徑作爲參數,如之前產生,然後Response.Flush(),以確保所有的文件被送到

  4. finally,刪除文件

+0

這工作,謝謝。 – user420667 2011-01-05 23:08:21

+0

實際上,當我這樣做時,我將其餘的頁面作爲html注入到csv文件的末尾。任何想法,爲什麼這是和如何解決它?這就像我需要它停止渲染頁面並將其發送給響應... – user420667 2011-01-06 00:16:12

+0

那麼...我忘了告訴你在finally塊中做Response.End();) – 2011-01-06 00:19:21

1

您可以使用一個文件處理爲例如ASHXdownload.ashx ,這裏是一個快速的例子,你能有什麼......裏面

public void ProcessRequest(HttpContext context) 
{ 
    // example for the csv 
    context.Response.ContentType = "text/html"; 
    // what is the file name that the user see to save 
    context.Response.AppendHeader("Content-disposition", "attachment; filename=" + cFileNameToShowAndDownload); 

    context.Response.Write("here is your text to send"); 

    context.Response.Flush(); 
} 
+0

請注意,如果確保沒有呈現控件,您可以將文件響應返回到ASPX頁面的常規GET或POST請求(Request.Clear和CompleteRequest - http://msdn.microsoft.com/ en-us/library/f417efst.aspx) – 2011-01-05 23:09:50