views:

39

answers:

2

Is there a way to get the physical filepath from an ASP.NET's URL?

Scenerio: I have an app that is on two severs, but it will now be on lots more, and each server puts it in a different physical file path. Right now I'm doing this:

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

But what I need to do is something like this:

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

How can I do it?

+2  A: 

You can use HttpServerUtility.MapPath on the server side in order to get the physical path of a file, then return it in the Application or Session object, similarly to what you are doing now.

As for the physical path of a URL - there might not be one, as URLs can be re-written.

Oded
A: 

This Server.MapPath ( "/" ); or this HttpContext.Current.Server.MapPath ( "/" ); should give you what you need.

m.edmondson