2010-09-30 22 views
7

¿Hay alguna manera de obtener el archivo físico de la URL de ASP.NET?ASP.NET Get physical filepath from URL

Scenerio: Tengo una aplicación que está en dos servidores, pero ahora estará en muchos más, y cada servidor lo coloca en una ruta de archivo físico diferente. En este momento estoy haciendo esto:

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

Pero lo que tengo que hacer es algo como esto:

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

¿Cómo puedo hacerlo?

Respuesta

7

Puede usar HttpServerUtility.MapPath en el lado del servidor para obtener la ruta física de un archivo y luego devolverlo en el objeto Application o Session, de forma similar a lo que está haciendo ahora.

En cuanto a la ruta física de una URL, es posible que no haya una, ya que las URL se pueden volver a escribir.

4

Este Server.MapPath ("/"); o este HttpContext.Current.Server.MapPath ("/"); debería darle lo que necesita.

3

esto es ahora:

HostingEnvironment.MapPath("/");