使用物理路径中的HttpPostedFileBase.SaveAs保存上载的文件

时间:2013-05-30 09:09:33

标签: c# asp.net asp.net-mvc razor io

我想通过方法HttpPostedFileBase.SaveAs()将上传的文件保存到物理路径。

当我选择物理路径时,会出现异常,表明路径必须是虚拟的。

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

如何更改我的代码以便能够在我想要的地方保存文件?

2 个答案:

答案 0 :(得分:19)

Server.MapPath仅适用于属于网站的物理位置。如果要将文件保存在外面,可以使用以下命令:

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

确保执行应用程序池的帐户被授予对此文件夹的写入权限。

答案 1 :(得分:1)

Server.MapPath用于虚拟路径。您可以尝试使用Path.GetFullPath(路径)。