2011-06-22 11 views
9

Bu fiziksel yolu "C:\bla\bla\Content\Upload\image.jpg", "/Content/Upload/image.jpg" gibi bir sunucu yoluna dönüştürmek istiyorum.Fiziksel yolun sunucu yolu nasıl alınır?

Bunu nasıl yapabilirim? göreli yol almak için aşağıdaki Sen yapabilirim

public static class Extensions  { 
     public static string RelativePath(this HttpServerUtility utility, string path, HttpRequest context) 
     { 
      return path.Replace(context.ServerVariables["APPL_PHYSICAL_PATH"], "/").Replace(@"\", "/"); 
     } 
    } 

ve

Server.RelativePath(path, Request); 
+0

Nerede? İstemci tarafında mı yoksa sunucu tarafında mı? – jsalonen

+0

@jsalonen - sunucu tarafı – Freshblood

+0

[ASP.NET mutlak yolunun web göreli yoluna geri dönüş] olası kopyası (http://stackoverflow.com/questions/3164/asp-net-absolute-path-back-to-web- göreli yol) –

cevap

11

böyle bir şey kullanabilirsiniz.

String filePath = @"C:\bla\bla\Content\Upload\image.jpg"; 

String serverPath = Request.PhysicalPath; 
String relativePath = filePath.Substring(serverPath.Length, filePath.Length - serverPath.Length); 
+0

Bu OP'nin sorduğu şeyin tersi değil mi? – GvS

+0

Üzgünüm, –

+2

cevabını tekrar yazabilirim, iyi bir çözüm ancak HttpRequestBase yerine HttpServerUtility abnd HttpRequestBase yerine HttpServerUtilityBase kullanmayı tercih ediyorum. iyi çalışıyor. –