Eğer Server.MapPath kullanarak bir dosyanın varlığını bulup doğrulamayı başarabilirsem ve şimdi bu dosyayı doğrudan o dosyaya göndermek istiyorsam, en hızlı dönüştürmenin yolu nedir o mutlak yolu göreceli bir web yoluna geri mi?Mutlak yol web-göreli yoluna geri dön
cevap
Server.MapPath kullandıysanız, daha önce ilgili web yoluna sahip olmalısınız. MSDN documentation'a göre, bu yöntem, Web sunucusunun sanal yolu olan yolu yolunda bir değişkeni alır. Bu nedenle, yöntemi çağırabilirseniz, halihazırda ilgili web yoluna hemen erişebilmeniz gerekir.
: (Yukarıdaki cevabı editted gelmiş Tags2k @)
String RelativePath = AbsolutePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty);
(i C# kullanıyorum ama fi adapte edilebilir):
Bu zorunlu olarak doğru değildir - MapPath çağrısı başka bir yöntem tarafından gerçekleştirilmiş ve dosya denetleyici yöntemimden geçirilmiş/çağrılmış olabilir veya (benim durumumda) kaynak dizinim olan bir dizi farklı öğeden oluşturulmuş olabilir. "~/__ Kaynaklar" olarak tanımlanır. Açıkçası, kullanıcıyı bu yola yönlendirmek, beklenmedik sonuçlarla sonuçlanacaktır. Bu aynı zamanda bilmek de yararlı olacaktır çünkü bazen mutlak dosya yolu başka bir bağlamsal bilgi olmaksızın veritabanından çıkarılmış olabilir. – tags2k
[@tagsk] (http://stackoverflow.com/questions/3164#3195) - Bunu bilmiyorum. Yöntemin tanımlandığı şekilde, Server.MapPath içine girdiğiniz dize geçerliyse ve fiziksel bir sunucu yolu döndürürse, bu, onu nasıl oluşturduğunuzdan bağımsız olarak geçerli bir sanal yol olmalıdır. Sanal bir adresin başlangıcında tilde (~) kullanımıyla ilgili olarak, [ASP.NET Web Sitesi Yolları] (http://msdn.microsoft.com/en-us/library/ms178116.aspx) adresindeki bu MSDN makalesine bakın. :> ASP.NET, > ağında bir yol belirtirken > kök operatörünü (~), Web sunucusunu içerir. > c –
Yaakov - Not. Örneğin, kullandığım bir işlev bir kök yol alır ve yinelemeli olarak IENumerable
Server.RelativePath (yol) ürününe sahip olmak güzel olmaz mı?
de (başına sadece basitçe bu eski olduğunu biliyorum
Server.RelativePath(path, Request);
fiziki yol için daha iyi bir yedek olacaktır ~ /. path.Replace (context.ServerVariables ("APPL_PHYSICAL_PATH"), "~ /") –
çağırabilir o Bununla
public static class ExtensionMethods
{
public static string RelativePath(this HttpServerUtility srv, string path, HttpRequest context)
{
return path.Replace(context.ServerVariables["APPL_PHYSICAL_PATH"], "~/").Replace(@"\", "/");
}
}
;-) uzatmak gerekir ama sanal dizinleri dikkate alınması açısından gerekli @ Costo'nun yorumu). Bu, aşağıdaki gibi görünüyor:
Canoas'ın fikrini beğeniyorum. Ne yazık ki "HttpContext.Current.Request" mevcut değildi (BundleConfig.cs).
böyle Methode değiştirdi:public static string RelativePath(this HttpServerUtility srv, string path)
{
return path.Replace(HttpContext.Current.Server.MapPath("~/"), "~/").Replace(@"\", "/");
}
- 1. Geri Dön ve javascript
- 2. Göreli url yolunu mutlak yoluna çözümleme
- 3. Mutlak yol yerine göreceli yol nasıl kullanılır?
- 4. Yönlendirmeli sayfaya geri dön
- 5. Git Çalışmıyor Geri Dön
- 6. php sonuçları geri dön
- 7. 1 Tıkla -> Geri dön// Geri dönemiyorum -> kapat
- 8. VB.NET'teki mutlak yol için göreli yol
- 9. bir dosyaya mutlak yol Android
- 10. Nginx'te error_page için mutlak yol?
- 11. Psycopg2 cursor.execute jeneratöre geri dön
- 12. Ekle kaldır Listeye geri dön
- 13. PHPUnit - Satıcı/yol yoluna nasıl eklenir?
- 14. Geri Yükleme özgün xml durumuna dön
- 15. Linux'ta belirli bir göreli yol için mutlak yol nasıl programlanır?
- 16. URL'yi dosya sistemi yoluna dönüştürme
- 17. Göreli yol için mutlak (Eclipse, JSP)
- 18. Nasıl mutlak yol kullanarak EJS kısmi eklenir
- 19. Android için Dosyada Mutlak Yol Nasıl Gidilir?
- 20. SDK için mutlak yol ile xcodebuild komutu
- 21. Geri Dön düğmesinin uygulamamı kapatmasını engelle
- 22. Linux Sunucusu PHP güncelleştirmesi geri dön
- 23. Bir koleksiyon topla ve geri dön Sözlük
- 24. QR Barkod resmi metne geri dön
- 25. JavaScript - Anonymous fonksiyonundan geri dön (varScope)
- 26. Lat/lon'u piksellere dönüştür ve geri dön
- 27. Gezin Önceki görünüm denetleyicisine geri dön
- 28. Sayfasına geri dön sel_getUid() 'nin özgün davranışı
- 29. AVAudioPCMBuffer'ı NSData dosyasına dönüştür ve geri dön
- 30. UICollectionViewCell sayısı her zaman geri dön 0
Bu soru iki yaşında, sonra tekrar yoktu Yorum göndermek için yeteneği. "Tanrım". – tags2k