Из того, что я понимаю для asp.net FileUpload.FileName, ruturns полный путь, в то время как в firefox он возвращает только имя файла. Как удалить путь из возвращаемой строки, поскольку мне просто нужно имя файла, закодированного в html.
Asp.net FileUpload.FileName возвращает полный путь, т.е. когда не требуется
Ответ 1
Вы можете использовать статический класс Path, чтобы получить имя файла.
var fileName = Path.GetFileName(somePath);
И HttpUtility статический класс для его кодирования.
var encoded = HttpUtility.HtmlEncode(fileName);
Ответ 2
Итак, есть параметр IE (не только в IE8, но и в новых версиях) в меню "Сервис" → "Свойства обозревателя" → "Безопасность", который позволяет включать или исключать локальный путь при загрузке файлов.
По этой причине, если вы не хотите сохранять полную информацию о пути, безопаснее явно запрещать путь, если вы хотите поддерживать IE (не уверен, что в каких-либо других браузерах такая настройка).
Как упоминалось Джошем, Path.GetFileName(...) - хороший вариант. Вы также можете использовать string.Split в сочетании с Linq.
string fileNameOnly = somePath.Split('\\').Last();
Ответ 3
Path.GetFileName(Request.Files["file"].FileName)