Имя файла не может содержать символ /
в 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 * в имени файла.)