ASP.Net MVC FileStreamResult, допустимые символы для FileDownloadName - PullRequest
1 голос
/ 30 июня 2010

У меня есть метод действия, который возвращает FileStreamResult, загрузка работает нормально, проблема в том, что, хотя я установил свойство FileDownloadName объекта результата, некоторые файлы загружаются с другим именем (в частности, последней частью адреса). страницы, над которой я работаю. Например, на странице "http://localhost:5479/Items/Edit/277"" будет загружен файл с именем "277").

Это происходит, когда имя файла содержит специальные символы (например, «San José.jpg»), но это прекрасно работает, когда имя не имеет таких символов (например, «San Jose.jpg»).

Итак, мой вопрос: как мне разрешить пользователю загружать файл со специальными символами в его имени? или, если это невозможно, есть метод, который удаляет все специальные символы из строки, или я должен создать один?

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 июня 2010

На самом деле я только что нашел способ это исправить.

По сути, мне нужно использовать метод HttpUtility.UrlEncode для преобразования имени файла. Когда файл загружается, он получает почти то же имя, что и исходный файл (разница в том, что пробелы заменены на плюс (+) знак).

Надеюсь, это поможет кому-то еще.

1 голос
/ 01 июня 2011

У меня такая же проблема.Лучшее решение - HttpUtility.UrlPathEncode(...), поскольку оно не заменяет пробел на '+'.

...