更改发送给客户端的文件名?

时间:2020-03-06 15:05:22  来源:igfitidea点击:

我有一个网页,该网页从数据库中提取信息,将其转换为.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");

添加" Content-Disposition"标头,其值为" attachment; filename = filename.csv"。

Response.AddHeader("content-disposition", "attachment; filename=File.doc")

我们只需要设置Content-Disposition标头

Content-Disposition:  attachment; filename=data.csv

此Microsoft支持文章有一些不错的信息

如何为已知的MIME类型引发"文件下载"对话框