ASP.NET Export to Excel, если имя файла содержит символ # или /, оно преобразуется в подчеркивание (_) при всплывающем диалоге открытия / сохранения! - PullRequest
1 голос
/ 06 декабря 2010
string filename = "Category#FileName";

response.AddHeader("content-disposition", "attachment; filename=" + filename);
response.ContentType = "text/csv";
response.AddHeader("Pragma", "public");

Окончательное имя файла => Category_FileName

Буду признателен за помощь, пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

Имя файла не может содержать символ / в Windows (или в большинстве других операционных систем), поэтому вы не сможете остановить его преобразование. # оставлено в покое большинством браузеров, исключая IE.

Content-Disposition имена файлов немного ограничены. Не-ASCII символы не являются надежными в них, и надлежащее экранирование в соответствии с RFC не работает. Если вы хотите получить символы Юникода в имени файла загрузки по умолчанию (или некоторые другие знаки пунктуации, включая # в IE), вы должны кодировать его URL-адресом и включать его в качестве завершающей части пути, пропуская имя файла Content-Disposition , например:

http://www.example.com/myscript.aspx/foo%23bar.xls

myscript.aspx:

response.AddHeader("Content-Disposition", "attachment");

(Вы по-прежнему не можете включить / в имя файла таким образом, поскольку веб-серверы, как правило, блокируют все URL-адреса с% 2F. В любом случае, как указано выше, вы не сможете сохранить его с помощью * В любом случае 1014 * в имени файла.)

0 голосов
/ 06 июня 2017

К сожалению, это ограничение IE.

Согласно Microsoft, следующие символы будут преобразованы в подчеркивания, если вы будете использовать их в атрибуте имени файла вложения:

<   Left angle bracket
>   Right angle bracket
\   Backslash
"   Quotation mark
/   Slash mark
:   Colon
|   Vertical bar
?   Question mark
*   Asterisk
    Space

См. https://support.microsoft.com/en-us/help/949197/certain-characters-in-a-file-name-may-be-converted-to-underscores-when-a-user-downloads-a-file-by-using-windows-internet-explorer-7

...