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