2016-01-06 147 views
3

在此基础上:ASP.Net Download file to client browser下载文件到客户端浏览器,在卡住到Response.End()

这也应该工作:(contenu是一个字符串)

 Response.Clear(); 

     Response.ClearHeaders(); 

     Response.ClearContent(); 

     Response.AddHeader("Content-Disposition", "attachment; filename=\"" + txtFileName.Value.ToString() + "\""); 

     Response.AddHeader("Content-Length", contenu.Length.ToString()); 

     Response.ContentType = "text/plain"; 

     Response.Flush(); 

     Response.Write(contenu); 

     Response.End(); 

然而,Response.End()后的浏览器似乎反应,因为我看到它的工作,但然后什么都没有发生......

相同的Chrome和资源管理器。

我该怎么办?

+0

我怀疑它也可能是一些做的冲洗和写入的顺序;尝试交换他们的执行ordder – techspider

回答

2

试试这个代码,它具有稍微不同的参数设置;这是为我工作

protected void ExportData(string fileName, string fileType, string content) 
    { 
     Response.Clear(); 
     Response.Buffer = true; 
     Response.AddHeader("content-disposition", "attachment;filename=" + Server.UrlPathEncode(fileName)); 
     Response.Charset = ""; 
     Response.ContentType = fileType; 
     Response.Output.Write(content); 
     Response.Flush(); 
     Response.End(); 

    } 

这样调用

ExportData("Report.txt", "text/plain", yourContentString); 
+0

好吧,我只是看到我被回传愚弄:函数后,意外回发发生,所以标题发送,但因为页面重新加载,忽略错误,然后忽略,无论如何,你的功能是坚如磐石,所以我会接受你的答案 –

相关问题