Сохранение загруженного файла с помощью 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(путь).