如何使用ASP建立虛擬的FTP服務(wù)器

字號:


    ASP中采用組件或無組件上傳技術(shù),均可以實現(xiàn)文件的上傳功能。由此我們可以采用ASP的無組件上傳技術(shù),在我們自己的站點上建立一個虛擬的FTP服務(wù)器,象真正的FTP服務(wù)器一樣,為多個用戶提供遠(yuǎn)程文件的管理,同時各個用戶只能操作自己的文件。
    當(dāng)文件上傳的時候,ASP可以采用FSO或數(shù)據(jù)庫方式來保存文件數(shù)據(jù)(有些服務(wù)器并沒有提供FSO功能)。這里我采用數(shù)據(jù)庫來保存用戶所上傳的文件,采用數(shù)據(jù)庫的優(yōu)點我就不說了,總之很多。還有一個原因就是IIS限制了文件上傳的大?。ù蟾抛畲?00KB吧),使用數(shù)據(jù)庫方式可以采用續(xù)傳技術(shù)突破這個限制,可以上傳很大的文件,很大很大,無限大,……。
    (哈哈,廢話講了一大堆,下面講講實現(xiàn)的方法)
    ● 第一步:在服務(wù)器上建立一個數(shù)據(jù)庫(ACCESS、SQL-SERVER、MYSQL均可以),簡單一點就ACCESS吧。數(shù)據(jù)庫內(nèi)建立兩個表:
    上傳用戶管理用:admin(ID, Name, Password, Type)
    保存上傳文件數(shù)據(jù):files(ID, ParentID, FileName, FileLength, FileType, FileData, UpDate, UserID)。
    如果FileLength=0,則表示其為文件夾,并且為每個用戶建立一個根文件夾。
    ● 第二步:建立用戶登陸頁面,并使用SESSION將用戶的ID保存起來,用于限制其對文件的操作。
    Session("Name") = list("SName")
    Session("UID") = list("ID")
    ● 第三步:建立用戶主頁面(顯示用戶上傳過的文件)
    strSQL = "SELECT * FROM files WHERE ParentID=" & userRootIDuserRootId 為用戶根文件夾的ID
    strSQL = strSQL & " AND UserID=" & SESSION("UID")
    strSQL = strSQL & " ORDER BY FileName"
    ● 第四步:上傳文件頁面
    list.AddNew
    list("ParentID") = userRootID
    list("FileName") = Form("Name")
    list("FileLength") = Form("Length")
    list("FileType") = Form("Type")
    list("FileData").AppendChunk MidB(sdata,Form("Start"),Form("Length"))
    list("UserID") = Session("UID")
    list("UpDate") = Now()
    list.Update
    ● 第五步:文件管理操作(使用文件的ID對文件進(jìn)行表識,并且對用戶的操作進(jìn)行限制)