CSV下载为HTM

时间:2012-06-19 13:32:43

标签: c# asp.net csv web

我在所有浏览器中都遇到了很大的问题。

我有一个网站,客户可以下载包含所需详细信息的csv文件。

我遇到的问题是csv文件无法下载或作为htm文件下载。

在我用.csv指定文件名的代码中,服务器上的文件也是.csv。

代码如下

context.Response.Buffer = true;
context.Response.Clear();
context.Response.ClearHeaders();                    
context.Response.ContentType = "text/csv";
context.Response.AppendHeader("Content-Disposition", @"attachment,     
     filename=" + ((string)Path.GetFileName(downloadFilePath)));
context.Response.WriteFile(downloadFilePath);
context.Response.Flush();
context.Response.Close();

我尝试了context.Response.ContentType = "text/html";context.Response.ContentType = "application/octet-stream";

它在IIS6上运行。

有人知道造成这种情况的原因吗?

2 个答案:

答案 0 :(得分:2)

假设您的verbatim string literal在您的来源的单行上,您是否尝试使用,替换Content-Disposition标题中的;?我发现的例子总是在那里使用分号。

使用文件名周围的引号来保护标题不受特殊字符的影响可能更安全:

context.Response.AppendHeader(
    "Content-Disposition",
    string.Format(
        "attachment; filename=\"{0}\"",
        Path.GetFileName(downloadFilePath)));

答案 1 :(得分:0)

好的,我已经找出了为什么文件没有以CSV格式下载。

因为文件名中有空格,所以我需要将文件名括起来,以免在空格处切断。

感谢您的帮助