По некоторым причинам, большинство ответов там даже не пытаются закодировать значение имени файла. Если файл содержит пробелы, точки с запятой или кавычки, он может отображаться неправильно.
Похоже, вы можете использовать класс ContentDisposition
для генерации правильного значения заголовка:
Response.AppendHeader("Content-Disposition", new ContentDisposition
{
FileName = yourFilename
}.ToString());
Вы можете проверить исходный код ContentDisposition.ToString()
, чтобы подтвердить, что он пытается правильно его кодировать.
Предупреждение : Это может произойти сбой, когда имя файла содержит тире (не дефис). Я еще не удосужился разобраться в этом.