【发布时间】:2016-06-05 10:35:48
【问题描述】:
我正在尝试让文件上传在我正在开发的应用程序中工作。
在我的本地机器上,我一直在使用以下方法将文件保存到共享资源上的文件夹中:
string path = Path.Combine("\\appname\myfolder$", Path.GetFileName(file.FileName));
file.SaveAs(path);
一切正常。
(在“appname”服务器上,文件夹“myfolder”位于根目录(例如)c:\myfolder)
当我将项目部署到同一服务器上的 IIS(例如 http:\appname)时,这不再有效。
因此,我尝试将代码更改为指向将要运行的服务器上的 c 驱动器,例如
string path = Path.Combine("c:\\myfolder", Path.GetFileName(file.FileName));
file.SaveAs(path);
这也不起作用。尝试了其他一些东西,但现在完全失去了它。有人可以帮忙吗?
【问题讨论】:
-
您需要使用 Server.MapPath 来获取您要保存的物理路径,并且应用程序池标识必须对该路径具有写入权限。
-
在使用
file.FileName之前,您可能需要先检查文件是否存在。 -
运行 IIS 的用户呢?它有正确的权限吗?
-
另外,您可以通过
Path.GetDirectorynamestackoverflow.com/questions/674479/…直接从文件中获取文件目录
标签: c# asp.net-mvc