2010-09-30 8 views
7

Existe-t-il un moyen d'obtenir le chemin de fichier physique à partir de l'URL d'un ASP.NET? Scenerio: J'ai une application qui est sur deux serveurs, mais elle sera maintenant sur beaucoup plus, et chaque serveur le place dans un chemin de fichier physique différent. En ce moment je fais ceci:ASP.NET Récupérer un chemin de fichier physique à partir de l'URL

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

Mais ce que je dois faire quelque chose comme ceci:

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

Comment puis-je faire?

Répondre

7

Vous pouvez utiliser HttpServerUtility.MapPath côté serveur pour obtenir le chemin physique d'un fichier, puis le retourner dans l'objet Application ou Session, comme vous le faites actuellement.

En ce qui concerne le chemin physique d'une URL - il n'y en a peut-être pas, car les URL peuvent être réécrites.

4

Cette Server.MapPath ("/"); ou cette HttpContext.Current.Server.MapPath ("/"); devrait vous donner ce dont vous avez besoin.

3

C'est maintenant:

HostingEnvironment.MapPath("/"); 
Questions connexes