標籤:

Server對象MapPath方法

Server對象MapPath方法返回與Web伺服器上的指定虛擬路徑相對應的物理文件路徑。這在實際中也是很有用的,一般情況下,文件路徑是用虛擬路徑來表示,但有時必須使用物理路徑,比如文件上傳或對伺服器上的文件進行操作,就必須使用物理路徑。Server對象提供的MapPath方法,可以從一個有效虛擬路徑下的任何文件上提取相應的實際物理路徑。

MapPath方法的語法如下:Server.MapPath(path)path:指定相對或虛擬路徑或文件名,返回實際路徑。

例如:<% SerVer.MapPath("./Myfile.asp") Server.MapPalh("Myfile.asp")%>

若在所給定的path參數前加「/」或「\」符號,則表示要把虛擬的全路徑映射成完整的實際路徑,即MapPath方法返迴路徑時將Path視為完整的虛擬路徑。如果不是以斜杠開始,則MapPath方法返回與.asp文件中已有路徑的相對路徑。由於ASP要求在存取文件夾、文件或資料庫數據時必須使用實際路徑,所以在這種情況下,可以使用Server.MapPath(path)方法,將path指定的虛擬路徑轉換成實際路徑。

Server.MapPath的用法./當前目錄/根目錄../上層目錄(相對當前來說)

如果當前的網站目錄為D:wwwroot瀏覽的頁面路徑為D:wwwrootcompany
ewsshow.asp在show.asp頁面中使用Server.MapPath("./")返迴路徑為:D:wwwrootcompany
ewsServer.MapPath("/")返迴路徑為:D:wwwrootServer.MapPath("../")返迴路徑為:D:wwwrootcompanyserver.MapPath(request.ServerVariables("Path_Info"))Request.ServerVariables("Path_Translated")上面兩種方式返迴路徑為D:wwwrootcompany
ewsshow.asp

儘可能地使用Server.MapPath儘可能地使用Server.MapPath()來表示存儲在伺服器上的文件,而不要用靜態絕對路徑。因為,如果採用靜態絕對路徑,當web路徑發生變化時,將導致文件路徑表達錯誤,從而不得不修改原靜態路徑。而使用Server.MapPath()表示的路徑就不必再做修改。

比如,以下的代碼就不是好的方法: <% whichfile="D:inetpubwwwrootwhateverjunk.txt" Set fs = CreateObject("Scripting.FileSystemObject") Set thisfile = fs.OpenTextFile(whichfile, 1, False) tempSTR=thisfile.readall response.write tempSTR thisfile.Close set thisfile=nothing set fs=nothing %> 建議使用下面的代碼來完成同樣的功能: <% whichfile=server.mappath("whateverjunk.txt") Set fs = CreateObject("Scripting.FileSystemObject") Set thisfile = fs.OpenTextFile(whichfile, 1, False) tempSTR=thisfile.readall response.write tempSTR thisfile.Close set thisfile=nothing set fs=nothing %>


推薦閱讀:

約束滿足:擁有無限選擇就會無從選擇
孩子不愛閱讀怎麼破?這裡有你想要的方法!
2018年法考如何把握民法知識結構?
分析八字的綜合方法和步驟
中國十大名茶沖泡方法圖解:

TAG:方法 | Path |