Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否更改发送到客户端的文件名?_C#_Asp.net_Http - Fatal编程技术网

C# 是否更改发送到客户端的文件名?

C# 是否更改发送到客户端的文件名?,c#,asp.net,http,C#,Asp.net,Http,我有一个网页,可以从数据库中提取信息,将其转换为.csv格式,并将文件写入HTTPResponse string csv = GetCSV(); Response.Clear(); Response.ContentType = "text/csv"; Response.Write(csv); 这工作正常,文件发送到客户机时没有问题。但是,当文件发送到客户端时,将使用当前页面的名称,而不是更友好的名称(如“data.csv”) 我的问题是,在不将文件写入磁盘并将客户端重定向到文件url的情况下

我有一个网页,可以从数据库中提取信息,将其转换为.csv格式,并将文件写入HTTPResponse

string csv = GetCSV();
Response.Clear();
Response.ContentType = "text/csv";
Response.Write(csv);
这工作正常,文件发送到客户机时没有问题。但是,当文件发送到客户端时,将使用当前页面的名称,而不是更友好的名称(如“data.csv”)

我的问题是,在不将文件写入磁盘并将客户端重定向到文件url的情况下,如何更改写入输出流的文件名


编辑:感谢各位的回复。我得到了4个相同的答案,所以我选择了第一个作为答案。

我相信这对你会有用的

Response.AddHeader("content-disposition", "attachment; filename=NewFileName.csv");

添加一个值为“attachment;filename=filename.csv”的“Content Disposition”标题。

您只需设置Content Disposition标题

Content-Disposition:  attachment; filename=data.csv

这篇Microsoft支持文章提供了一些很好的信息

该示例无效(后面不应该有分号)。
Content-Disposition:  attachment; filename=data.csv