ASP.NET MVC Server.MapPath, указывающий полный путь в Internet Explorer

Я загружаю файл с

var filename = Server.MapPath(Path.Combine("~/Content/UserContent", Path.ChangeExtension(newName,Path.GetExtension(attachments.FileName))));
attachments.SaveAs(filename);

он отлично работает, за исключением того, что в Internet Explorer он дает полный путь «C:\Users\okke\Desktop\GEWOONEENMAP OK\etags.txt» вместо простого «etags.txt», как я могу это исправить?


person Conceptual    schedule 19.12.2012    source источник


Ответы (1)


Вызовите Path.GetFileName в результате, чтобы получить только имя файла, например.

attachments.SaveAs(Path.GetFileName(fileName));

Если значение fileName является путем к файлу, он вернет имя файла (с расширением), если это уже допустимое имя файла, он просто вернет то же значение.

person James    schedule 19.12.2012
comment
Да, но теперь он говорит, что для SaveAs требуется корневой путь, когда я сохраняю файл в базе данных (только имя), он сохраняет полное имя пути, кроме etags.txt - person Conceptual; 19.12.2012
comment
Ну, это не был ваш первоначальный вопрос, однако, чтобы исправить это, все, что вам нужно сделать, это обернуть вызов Path.ChangeExtension с помощью Path.GetFileName вместо вызова SaveAs. - person James; 19.12.2012