Сохранение загруженного файла с помощью HttpPostedFileBase.SaveAs в физическом пути

Я хочу сохранить загруженный файл на физический путь методом HttpPostedFileBase.SaveAs().

Когда я выбираю физический путь, появляется исключение, указывающее, что путь должен быть виртуальным.

 var fileName = Path.GetFileName(fileurl.FileName);
 var path = "C:/Projets" + fileName;
 fileurl.SaveAs(Server.MapPath(path));

Как я могу изменить свой код, чтобы сохранить файл каждый раз, когда я хочу?

Ответ 1

Server.MapPath работает только с физическими местоположениями, которые являются частью веб-сайта. Если вы хотите сохранить файл за пределами, вы можете использовать следующее:

var fileName = Path.GetFileName(fileurl.FileName);
fileurl.SaveAs(Path.Combine(@"c:\projects", fileName));

Убедитесь, что учетная запись, в которой выполняется ваш пул приложений, имеет права на запись в эту папку.

Ответ 2

Server.MapPath предназначен для виртуального пути. Вы можете попробовать использовать Path.GetFullPath(путь).