Изменить имя файла, отправленного клиенту? - PullRequest
8 голосов
/ 03 октября 2008

У меня есть веб-страница, которая извлекает информацию из базы данных, преобразует ее в формат .csv и записывает файл в HTTPResponse.

string csv = GetCSV();
Response.Clear();
Response.ContentType = "text/csv";
Response.Write(csv);

Это отлично работает, и файл отправляется клиенту без проблем. Однако при отправке файла клиенту используется имя текущей страницы, а не более понятное имя (например, «data.csv»).

alt text

У меня вопрос, как я могу изменить имя файла, который записывается в выходной поток, без записи файла на диск и перенаправления клиента на URL файла?

РЕДАКТИРОВАТЬ: Спасибо за ответы, ребята. Я получил 4 одинаковых ответа, поэтому я просто выбрал первый ответ.

Ответы [ 4 ]

12 голосов
/ 03 октября 2008

Я верю, что это сработает для вас.

Response.AddHeader("content-disposition", "attachment; filename=NewFileName.csv");
3 голосов
/ 03 октября 2008

Вам просто нужно установить Content-Disposition header

Content-Disposition:  attachment; filename=data.csv

Эта статья службы поддержки Microsoft содержит полезную информацию

Как вызвать диалоговое окно «Загрузка файла» для известного типа MIME

2 голосов
/ 03 октября 2008
Response.AddHeader("content-disposition", "attachment; filename=File.doc")
2 голосов
/ 03 октября 2008

Добавить заголовок «Content-Disposition» со значением «attachment; filename = filename.csv».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...