獲取網站根目錄的方法有幾種如:
Server.MapPath(Request.ServerVariables["PATH_INFO"])
Server.MapPath("~/")//獲取根文件夾
Server.MapPath("")//當前代碼文件所在的目錄路勁
Server.MapPath(".")//獲取根文件夾
Page.Request.ApplicationPath
以上的代碼在http://localhost/EnglishClub/manage/WebForm1.aspx頁面
運行結果:
C:/Inetpub/wwwroot/EnglishClub/manage/WebForm1.aspx
C:/Inetpub/wwwroot/
C:/Inetpub/wwwroot/EnglishClub/manage
C:/Inetpub/wwwroot/EnglishClub/manage
C:/Inetpub/wwwroot/EnglishClub/
C:/Inetpub/wwwroot/EnglishClub
以上的方法可以在.aspx中訪問,但是如果你在。cs文件就不能用。
HttpContext.Current.Server.MapPath();
System.Web.HttpContext.Current.Request.PhysicalApplicationPath 在.cs文件中可以用。
但是HttpContext.Current.Server.MapPath();這個獲取的是文件的路徑而不是根目錄。
只有System.Web.HttpContext.Current.Request.PhysicalApplicationPath 這個纔是獲取的根目錄,在寫獲取數據庫路徑是應該用這個,其他的都有問題。
System.Web.HttpContext.Current.Request.PhysicalApplicationPath
和Server.MapPath("~/")效果是一樣的。
Server.MapPath("~/");//無論代碼所在的文件的、頁面路勁是什麼,永遠返回 C:/Inetpub/wwwroot/EnglishClub/(就是當前程序運行的所在根目錄)
如果存儲 附件的路勁 進數據庫的話,不應該把絕對路勁存進去。應該只存儲 文件名部分。例如:
/uploads/abc.txt
當需要瀏覽文件的時候,在在讀取出來的路徑:(即/uploads/abc.txt),前面+網站的路勁:例如:
http://abc.com+"/uploads/abc.txt"