2010-09-30 23 views
7

C'è un modo per ottenere il filepath fisico dall'URL di ASP.NET?ASP.NET Ottieni percorso file fisico dall'URL

Scenerio: Ho un'app che è su due severs, ma ora sarà su molto altro, e ogni server lo mette in un percorso di file fisico diverso. In questo momento mi sto facendo questo:

//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\\"; } 

Ma quello che devo fare è qualcosa di simile:

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

Come posso fare?

risposta

7

È possibile utilizzare HttpServerUtility.MapPath sul lato server al fine di ottenere il percorso fisico di un file, per poi tornare nel oggetto Application o Session, analogamente a quanto si sta facendo ora.

Per quanto riguarda il percorso fisico di un URL, potrebbe non esserlo, poiché gli URL possono essere riscritti.

4

Questo Server.MapPath ("/"); o questo HttpContext.Current.Server.MapPath ("/"); dovrebbero darti quello che ti serve.

3

questo è ora:

HostingEnvironment.MapPath("/"); 
Problemi correlati