ASP.NET Получить физический путь к файлу из URL - PullRequest
7 голосов
/ 30 сентября 2010

Есть ли способ получить физический путь к файлу по URL-адресу ASP.NET?

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 ]

7 голосов
/ 30 сентября 2010

Вы можете использовать HttpServerUtility.MapPath на стороне сервера, чтобы получить физический путь к файлу, а затем вернуть его в объекте Application или Session, аналогично тому, что вы делаетесейчас.

Что касается физического пути URL-адреса - его может не быть, так как URL-адреса могут быть переписаны.

4 голосов
/ 30 сентября 2010

Этот Server.MapPath ( "/" ); или HttpContext.Current.Server.MapPath ( "/" ); должен дать вам то, что вам нужно.

3 голосов
/ 24 февраля 2015

Это сейчас:

HostingEnvironment.MapPath("/");
...