ASP中採用組件或無組件上傳技術,均可以實現檔案的上傳功能。由此我們可以採用ASP的無組件上傳技術,在我們自己的網站上建立一個虛擬FTP伺服器,象真正的FTP伺服器一樣,為多個使用者提供遠程檔案的管理,同時各個使用者只能操作自己的檔案。
當檔案上傳的時候,ASP可以採用FSO或資料庫方式來儲存檔案資料(有些伺服器並沒有提供FSO功能)。這裡我採用資料庫來儲存使用者所上傳的檔案,採用資料庫的優點我就不說了,總之很多。還有一個原因就是IIS限制了檔案上傳的大小(大概最大200KB吧),使用資料庫方式可以採用續傳技術突破這個限制,可以上傳很大的檔案,很大很大,無限大,……。
(哈哈,廢話講了一大堆,下面講講實現的方法)
● 第一步:在伺服器上建立一個資料庫(ACCESS、SQL-SERVER、MYSQL均可以),簡單一點就ACCESS吧。資料庫內建立兩個表:
上傳使用者管理用:admin(ID, Name, Password, Type)
儲存上傳檔案資料: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對檔案進行表識,並且對使用者的操作進行限制)