有没有办法从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\\";
我该怎么做?
答案 0 :(得分:7)
您可以在服务器端使用HttpServerUtility.MapPath
以获取文件的物理路径,然后将其返回到Application
或Session
对象中,与您正在执行的操作类似现在
至于URL的物理路径 - 可能没有,因为URL可以重写。
答案 1 :(得分:4)
此Server.MapPath ( "/" );
或此HttpContext.Current.Server.MapPath ( "/" );
应该可以满足您的需求。
答案 2 :(得分:3)
现在是:
HostingEnvironment.MapPath("/");