ENV:Asp.Net Vb/Visual Studio 2010/.Net 4 IIS Express 和 IIS 6
我有一个名为 download.aspx 的页面,它从数据库创建 csv 数据,但无法让浏览器使用正确的文件名下载它。我的理解是 Content-Disposition 给它一个文件名,但下载始终是我的页面的名称,而不是 download.aspx。
我确信我对其工作原理有误解,并且我在这里搜索了指导,但似乎无法找到任何可行的解决方案。我有以下内容:
Response.Clear()
Response.ContentType = "text/csv"
Response.AppendHeader("Content-Disposition", "attachment: filename=leadership.csv")
Response.Write("test,test,test")
Response.Flush()
Response.End()
我尝试过“application/csv”和“application/x-download”,没有任何区别。我还在具有相同文件名问题的 .ashx 文件中尝试过它。如何才能将文件下载为 Leadership.csv 而不是 download.aspx?
最佳答案
Content-Dispostion header 错误。值(value)
attachment: filename=leadership.csv
应该是(带有可选空格)
attachment; filename=leadership.csv
请注意,用于分隔 header 和值的 :
已更改为 ;
,用于分隔子值。
此外,我建议使用库来生成 CSV(如果还没有的话)..
关于asp.net - 如何让asp.net下载动态csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059652/