明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在ASP中完成通用的絕對路徑生成方法

[摘要]在我開發(fā)ASP + Access的Web應(yīng)用時,都會遇到數(shù)據(jù)庫文件路徑的定位問題。如果在自己的計算機(jī)上實現(xiàn)時可以直接指定了事,但如果做的項目要上傳到別的服務(wù)器或移動別的機(jī)器上運行使用,每次都要把這個路徑改來改去的話顯得有些繁鎖,下面結(jié)合我做這個網(wǎng)站的經(jīng)驗來解決這個問題,讓我們可以“一勞永逸”。 在...

在我開發(fā)ASP + Access的Web應(yīng)用時,都會遇到數(shù)據(jù)庫文件路徑的定位問題。如果在自己的計算機(jī)上實現(xiàn)時可以直接指定了事,但如果做的項目要上傳到別的服務(wù)器或移動別的機(jī)器上運行使用,每次都要把這個路徑改來改去的話顯得有些繁鎖,下面結(jié)合我做這個網(wǎng)站的經(jīng)驗來解決這個問題,讓我們可以“一勞永逸”。

在ASP中使用Server.MapPath("file.asp")語句后,會返回該文件在本地驅(qū)動器上的絕對路徑,如“D:\MySite\test\file.asp”,所以在不同的子目錄的不同文件使用這條語句就只會返回那個文件所在路徑,這樣我們就不能簡單地利用這條語句解決上面的問題,但只要稍加利用這條方法和其它與個字符函數(shù)就可以輕松解決上面的問題。

現(xiàn)在假設(shè)你的站點目錄結(jié)構(gòu)如下:
MySite
- db
- db1.mdb
- db2.mdb
- sub_folder
- hello.asp
- search.asp
- index.asp

只要我們在需要訪問數(shù)據(jù)庫的asp文件中加入以下語句:


if session("rootDir") = "" then
dim str
str = Server.MapPath("db")
session("rootDir") = Mid(str, 1, InStr(1, str, "MySite", 1) - 1) & "MySite\db"
end if
...
Set conn = Server.CreateObject("adodb.connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & session("rootDir") & "\db1.mdb" & ";pwd=" & pw


這樣在session("rootDir")中就存放你站點中子目錄“db”的絕結(jié)路徑,當(dāng)你改變你站點的主目錄或移到別的機(jī)器的情況下就可以不需要理會數(shù)據(jù)庫文件的存取路徑問題了。