ASP.Net MVC FileStreamResult, допустимые символы для FileDownloadName
У меня есть метод действия, который возвращает FileStreamResult, загрузка работает нормально, проблема в том, что, хотя я устанавливаю свойство FileDownloadName объекта результата, некоторые файлы загружаются с другим именем (в частности, последняя часть адреса страницы Я работаю над. Например, на странице " http://localhost:5479/Items/Edit/277" будет загружен файл с именем "277").
Это происходит, когда имя файла содержит специальные символы (например, "San José.jpg"), но это прекрасно работает, когда в имени нет таких символов (например, "San Jose.jpg").
Итак, мой вопрос, как мне разрешить пользователю загружать файл со специальными символами в его имени? или, если это невозможно, есть метод, который удаляет все специальные символы из строки, или мне нужно создать его?
Спасибо
2 ответа
На самом деле я только что нашел способ это исправить.
По сути, мне нужно использовать метод HttpUtility.UrlEncode для преобразования имени файла. Когда файл загружается, он получает почти то же имя, что и исходный файл (разница в том, что пробелы заменены на плюс (+) знак).
Надеюсь, это поможет кому-то еще.
У меня та же проблема. Лучшее решение HttpUtility.UrlPathEncode(...)
так как он не заменяет пробел на '+'.