2012-04-19 233 views
1
public void SaveSofaXML(object s, EventArgs e) 
{ 
    HttpResponse response = HttpContext.Current.Response; 

    StreamReader streamReader = new StreamReader(
     Server.MapPath("~/SentinelOperationsUI/SoFaXML.html")); 
    string text = streamReader.ReadToEnd(); 
    streamReader.Close(); 

    response.StatusCode = 200; 
    response.ContentEncoding = Encoding.UTF32; 
    response.AddHeader("content-disposition", "attachment; filename=test.html"); 
    response.AddHeader("Content-Transfer-Encoding", "binary"); 
    response.AddHeader("Content-Length", 
     response.ContentEncoding.GetByteCount(text).ToString()); 
    response.ContentType = "application-download"; 
} 

我想即時通訊正確的軌道上。但是,當我嘗試保存HTML文件(〜100kb)文件永遠不會完成下載。我錯過了一些必需的標題?由於從服務器保存html文件

+0

在未來,請花時間來從代碼中刪除多餘的縮進,並添加一行返回,以避免水平滾動條。它使你的代碼更容易閱讀。謝謝! – mellamokb 2012-04-19 13:08:33

回答

4

試試這個:

Response.AppendHeader("content-disposition", "attachment; filename=test.html"); 
Response.TransmitFile(Server.MapPath("~/SentinelOperationsUI/SoFaXML.html")); 
Response.End(); 
+0

+1'TransmitFile'是爲此目的而設計的,效果很好。爲什麼重新發明輪子? – mellamokb 2012-04-19 13:10:33

+0

@mellamokb yep ........ – 2012-04-19 13:11:02

+0

哇,非常好!謝謝Royi – Johan 2012-04-19 13:11:29