總結Server.Mappath的用法


學習ASP的時候,自己總結的Server.Mappath的用法
語法:Server.Mappath(path) 'path為你要指定的路徑
用途:將path指定的虛擬路徑轉化為實際路徑
范例:
1)Server.Mappth("page.asp") '找出頁面page.asp的實際路徑
2)Server.Mappth("/") '找出根目錄
3)Server.Mappath("./") '找出現在的目錄 (注:很多書上都這么寫,但自己寫過后提示為錯誤,也有這么寫的Server.Mappath("./"))
注意:參數path必須為虛擬路徑,否則將出錯!
示例:
如果你當前調用Server.Mappath的頁面為,而你把文件存到http://www.xxx.com/putinfo/img里,則可以用以下兩種方法之一:
1) path="/putinfo/img"
2) path="img"
也就是說:如果path的第一個字符為“/”或者“\”,則Server.Mappath會將它解釋成從根目錄開始的路徑,否則Server.Mappath會將它解釋成從當前目錄開始的路徑。

獲取網站根目錄的方法有幾種如:

Server.MapPath(Request.ServerVariables["PATH_INFO"])
   Server.MapPath("/")
   Server.MapPath("")//當前代碼文件所在的目錄路勁
  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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM