Server.MapPath和Request.MapPath()的用法

來源:互聯網
上載者:User
Server.MapPath和Request.MapPath()的用法./目前的目錄 

/根目錄 

../上層目錄(相對當前來說) 

如果當前的網站目錄為D:\wwwroot    瀏覽的頁面路徑為D:\wwwroot\company\news\show.asp 

在show.asp頁面中使用

Server.MapPath("./")   返迴路徑為:D:\wwwroot\company\news 

Server.MapPath("/")    返迴路徑為:D:\wwwroot 

Server.MapPath("../")   返迴路徑為:D:\wwwroot\company 

server.MapPath(request.ServerVariables("Path_Info")) 

Request.ServerVariables("Path_Translated")   

上面兩種方式返迴路徑為 D:\wwwroot\company\news\show.asp 



ASP.NET中Server.MapPath() 和 Request.MapPath()區別: 

Server.MapPath(string)   :是將相對於當前調用檔案的檔案(或目錄)映射為實體路徑; 

Request.MapPath(string) :是將string虛擬路徑映射為實體路徑(asp中Request無此方法) 

Server.MapPath(string) 中string 可以用“../”方式引用父目錄,甚至可以將此目錄跳到整個WEB目錄外,如:C:\WWWROOT 

目錄為WEB根目錄,在根目錄檔案中調用此Server.MapPath("../xyz.gif"),則可以調用WEB目錄外的指令碼、資源等。 

Request.MapPath(string) 中的string為虛擬目錄,只能相對WEB虛擬目錄形式的,也不允許"../"方式調用,只能是"/","/xx"等字串 

有時候直接用Server.MapPath(string) 調用一個檔案比較麻煩,因為不同的目錄中調用同一個Server.MapPath(string) 函數就會得到不同的值, 

特殊的話,就需要通過判斷本身目錄層次才能擷取正確的地址,使用的Request.MapPath(string)就可以調用同一個目錄檔案。不用做目錄判斷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.