2012-04-19 13 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

答えて

4

はこれを試してみてください。将来的には

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

+1 'TransmitFile'はこの目的で作られたもので、うまく機能します。なぜホイールを再発明するのですか? – mellamokb

+0

@mellamokb yep ........ –

+0

うわー、優秀!ありがとうRoyi – Johan

関連する問題