ASP.NET从URL获取物理文件路径

时间:2010-09-30 18:32:35

标签: asp.net url filepath

有没有办法从ASP.NET的URL获取物理文件路径?

Scenerio:我有一个应用程序在两个服务器上,但它现在将更多,每个服务器将其放在不同的物理文件路径中。现在我正在这样做:

//for server 1
if (Request.Url.GetLeftPart(UriPartial.Path).Contains(".com"))
 { Application["StoreFilesPath"] = "E:\\Data\\rootsite\\f1\\appsite\\Upload\\"; }

//for server 2
if (Request.Url.GetLeftPart(UriPartial.Path).Contains(".net"))
 { Application["StoreFilesPath"] = "E:\\Web\\rootsite2\\f34\\abc\\ghi\\appsite\\Upload\\"; }

但我需要做的是这样的事情:

//for all servers
Application["StoreFilesPath"] = getPhysicalFilePath() +"\\Upload\\";

我该怎么做?

3 个答案:

答案 0 :(得分:7)

您可以在服务器端使用HttpServerUtility.MapPath以获取文件的物理路径,然后将其返回到ApplicationSession对象中,与您正在执行的操作类似现在

至于URL的物理路径 - 可能没有,因为URL可以重写。

答案 1 :(得分:4)

Server.MapPath ( "/" );或此HttpContext.Current.Server.MapPath ( "/" );应该可以满足您的需求。

答案 2 :(得分:3)

现在是:

HostingEnvironment.MapPath("/");