構(gòu)建平臺創(chuàng)立空間

時(shí)間:2022-05-05 05:12:00

導(dǎo)語:構(gòu)建平臺創(chuàng)立空間一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

構(gòu)建平臺創(chuàng)立空間

[摘要]Excel軟件的自動(dòng)填充是一個(gè)非常實(shí)用的功能,為我們輸入一些連續(xù)性的數(shù)據(jù)提供了極大的方便,以及它強(qiáng)大的函數(shù)功能在實(shí)際應(yīng)用中發(fā)揮重要作用;Serv-U軟件是現(xiàn)今Windows平臺下最流行、功能最強(qiáng)大、使用最簡單的FTP服務(wù)器軟件之一,它可以對用戶用數(shù)據(jù)庫進(jìn)行管理;筆者嘗試用以上兩個(gè)軟件結(jié)合,構(gòu)建學(xué)生FTP服務(wù)器。

[關(guān)鍵詞]ExcelServ-U數(shù)據(jù)庫FTP服務(wù)器

為了機(jī)房管理方便,學(xué)生機(jī)的硬盤往往是還原保護(hù)的,同一臺計(jì)算機(jī)可能被不同班級的同學(xué)使用,學(xué)生的個(gè)人文件或沒有完成的作業(yè)不能在計(jì)算機(jī)上正常保留;在平時(shí)的教學(xué)課堂中,常常要分發(fā)文件到學(xué)生機(jī)上,學(xué)生完成作業(yè)后又要回收,雖然電子教室軟件具有這個(gè)功能,但是往往出現(xiàn)某些學(xué)生機(jī)不能正常分發(fā)和回收文件的情況,某臺學(xué)生機(jī)因故障重啟后,分發(fā)到桌面的文件須重新再發(fā)一次;基于以上兩點(diǎn)原因,筆者想到了為學(xué)生建一個(gè)FTP服務(wù)器,用于存放學(xué)生的作業(yè)及個(gè)人文件。

一、安裝Serv-U軟件

執(zhí)行安裝文件,即可開始安裝,全部選默認(rèn)選項(xiàng)即可,安裝完成后不需重新啟動(dòng)計(jì)算機(jī)。運(yùn)行Serv-U軟件,出現(xiàn)“SetupWizard(設(shè)置向?qū)В薄4讼驅(qū)Э梢詭湍爿p松地完成基本設(shè)置,直接選“Next(下一步)”,隨著安裝向?qū)О匆韵虏襟E來進(jìn)行操作:

1.在“IPaddress(IP地址)”框中保持空白,表示使用任意地址;

2.在“Domainname(域名)”框中輸入能表示自己機(jī)房或某個(gè)的名稱,如“jf1”;

3.在“systemservice(安裝成一個(gè)系統(tǒng)服務(wù)器嗎)”框中選擇“NO”;

4.在“anonymouseaccount(接受匿名登錄嗎)”框中選擇“NO”,要求學(xué)生一定用自己的帳號登錄;

5.在“Domainportnumber(端口號)”框中保持“21”端口不變;

6.在“Domaintype(域名類型)”框中務(wù)必選擇“StoreinODBCdatabase”項(xiàng),否則就不能用數(shù)據(jù)庫進(jìn)行管理用戶了。

二、創(chuàng)建數(shù)據(jù)庫

(一)數(shù)據(jù)庫表及表中字段說明

由于Access軟件能導(dǎo)入EXCEL工作表中的信息,所以筆者采用Access數(shù)據(jù)庫來管理Serv-U的用戶。須建立兩個(gè)表(Useraccounts和Groupaccounts),其中Useraccounts表用來存儲(chǔ)用戶的信息,Groupaccounts表用來存儲(chǔ)組的信息。

1.Useraccounts表中有以下字段名稱及字段類型:

字段名稱字段類型

User文本

Password文本

ChangePass是/否

HomeDir文本

Access文本

Groups文本

“User”字段的說明:用中文名作用用戶名登錄Serv-UFTP時(shí)容易出錯(cuò),若用拼音縮寫可能會(huì)造成重名,因此用數(shù)字編寫用戶名是一個(gè)不錯(cuò)的想法。用戶名共六位數(shù)字,前兩位表示所在班級,后四位表示該生在全校中的流水號,人數(shù)較少的學(xué)校可以考慮流水號用三位數(shù)字表示,與學(xué)籍管理中的學(xué)號統(tǒng)一起來。

“Password”字段的說明:Serv—U密碼加密算法為隨機(jī)碼與MD532位加密,為了方便處理,為每個(gè)用戶賦予一個(gè)統(tǒng)一的初始密碼“1”,加密后的字符串為“es073DE74EFE4ACF3AEE0821BD57F539D5”。

“ChangePass”字段的說明:是否允許用戶更改密碼,在本文中,允許學(xué)生更改密碼,更改的方法在下文說明。

“HomeDir”字段的說明:用戶在服務(wù)器上的存儲(chǔ)文件的物理位置,為了方便管理,每一個(gè)班級建立一個(gè)文件夾(用戶名前兩位數(shù)字命名),表示該班所有用戶的文件夾(用學(xué)生的姓名命名)放在此文件夾中。例學(xué)生的主目錄存放在D盤“學(xué)生FTP目錄”文件夾中。

“Access”字段的說明:用戶的權(quán)限,在用戶的目錄中賦予最大權(quán)限,即用戶可以在他的目錄中建立和刪除文件及文件夾。

“Groups”字段的說明:用戶屬于哪個(gè)組的名稱。

2.Groupaccounts表中有以下字段名稱及字段類型:

字段名稱字段類型說明

User文本組名

Access文本組目錄權(quán)限規(guī)則

(二)利用EXCEL軟件制作用戶信息

從學(xué)籍管理軟件中導(dǎo)出學(xué)生的姓名、班級、學(xué)號信息到一個(gè)EXCEL文件中備用,制作的表格示意如圖一所示:

圖一

“User”列可以用EXCEL中的文本函數(shù)“CONCATENATE()”將班和學(xué)號信息列合并成一個(gè)字符串,操作方法:單擊D2單元格,單擊“插入”菜單下的“函數(shù)”項(xiàng),在選擇類別中選擇“文本”,選中“CONCATENATE”函數(shù)后單擊“確定”按鈕,在TEXT1框中選擇B2單元格,在TEXT2框中選擇C2單元格,單擊“確定”按鈕,D2單元格的函數(shù)為“=CONCATENATE(B2,C2)”,向下填充,完成“User”列的操作,例如張三的用戶名就是“010001”。

制作“HomeDir”列的信息:將字符串“D:\學(xué)生FTP目錄\”、“班”列、字符串“\”及“姓名”列合并為一個(gè)字符串,H2單元格的函數(shù)為“=CONCATENATE("D:\學(xué)生FTP目錄\",B2,"\",A2)”,向下填充,完成“HomeDir”列的操作,例如張三的文件存放路徑為“D:\學(xué)生FTP目錄\01班\張三”。

制作“Access”列的信息:同理,將“HomeDir”列和字符串“|RWAMLCDP”合并為一個(gè)字符串,“RWAMLCDP”表示用戶對目錄及文件各種權(quán)限,在這里賦予用戶最大權(quán)限。

利用填充功能將“Access”列填充為“TRUE”,將“Groups”列填充為“Group1|Group2”,(Group2備用)將“Password”列填充為“es073DE74EFE4ACF3AEE0821BD57F539D5”。

(三)創(chuàng)建數(shù)據(jù)庫

將“User”列到“Groups”列所有信息用EXCEL的“選擇性粘貼”→“數(shù)值”命令復(fù)制到一個(gè)新的工作表(Sheet2)中,保存?zhèn)溆谩?/p>

啟動(dòng)Access軟件,創(chuàng)建一個(gè)Access數(shù)據(jù)庫,名為“ftp.mdb”,在“表”對象窗口中,單擊“新建”→“導(dǎo)入表”命令,在文件類型框中選擇“MicrosoftExcel(*.xls)”,導(dǎo)入準(zhǔn)備的EXCEL文件,在“工作表”選項(xiàng)中選擇“Sheet2”,單擊“下一步”,選擇“第一行包含列標(biāo)題”,最后在“導(dǎo)入到表”框中輸入“Useraccounts”,完成Useraccounts表的創(chuàng)建。

導(dǎo)入后的Useraccounts表的結(jié)構(gòu)如圖二所示。

圖二

在“表”對象窗口中,單擊“新建”→“設(shè)計(jì)”命令,在表設(shè)計(jì)窗口中輸入字段名稱“User”,選擇數(shù)據(jù)類型為“文本”;輸入字段名稱“access”,選擇數(shù)據(jù)類型為“文本”,單擊“保存”按鈕,將表保存為“Groupaccounts”,雙擊Groupaccounts表,在第一條記錄的User字段中輸入Group1,在第二條記錄的User字段中輸入Group2,完成Groupaccounts表的創(chuàng)建。新建后的Groupaccounts表結(jié)構(gòu)如圖三所示,最終完成的數(shù)據(jù)表如圖四所示,其他數(shù)據(jù)表可以不輸入數(shù)據(jù)。

圖三

三、建立Serv-U軟件與數(shù)據(jù)庫的關(guān)聯(lián)

(1)建立系統(tǒng)DSN數(shù)據(jù)源

單擊“控制面板”→“管理工具”下的“數(shù)據(jù)源(ODBC)”命令,單擊“系統(tǒng)DSN”窗口中的“新建”按鈕,在名稱框中選擇“MicrosoftAccessDriver(*.mdb)”(如圖五所示),在“數(shù)據(jù)源名”框中輸入“studentftp”,單擊“選擇”按鈕,選擇上面建立的數(shù)據(jù)庫名(),兩次單擊“確定”按鈕,完成系統(tǒng)DSN數(shù)據(jù)建立(如圖六所示)。

圖五圖六

(2)配置Serv-U軟件ODBC面板

建立Serv-U軟件與數(shù)據(jù)庫的聯(lián)接,運(yùn)行Serv-U軟件,單擊建立的域名(jf1),在Domain中的ODBC面板設(shè)置不同字段映射,如圖七所示。

圖七

數(shù)據(jù)庫字段映射和表名映射可以參照下表,當(dāng)然可以在數(shù)據(jù)庫中增加其他字段,如為每個(gè)用戶分配的最大磁盤配額等等。

數(shù)據(jù)庫字段映射和表名映射關(guān)系備注

ODBCsourcename(ODBC源名稱)studentftp系統(tǒng)數(shù)據(jù)源名

Tablenameofusrers(用戶的表名)UseraccountsAccess數(shù)據(jù)庫中建立兩個(gè)的表

Tablenameofgroups(組的表名)Groupaccounts

Columnnameofaccountname(用戶目錄訪問權(quán)限的表名)UserUseraccounts表中的字段

Columnnameofpassword(密碼的列名)Password

Columnnameofallowchangepassword(允許更改密碼的列名)ChangePass

Columnnameofhomedirectory(主目錄的列名)HomeDir

Columnnameofdiraccessrule(目錄訪問規(guī)則列名)Access

Columnnameofmembergroupnames(成員組名稱的列名)Groups

四、建立學(xué)生文件夾

在圖一所示EXCEL表中的“HomeDir”列就是表示存放學(xué)生文件的路徑,只要在表格的最后插入一列,該列中所有行中都填充為“MD”單詞,后一列中復(fù)制“HomeDir”列中信息,將這兩列的信息復(fù)制到一個(gè)文本文件中,將這個(gè)文件另存為“.bat”批處理文件類型,雙擊執(zhí)行這個(gè)文件就可以建立學(xué)生文件。

為了方便教師查找學(xué)生作業(yè),也可以利用這個(gè)方法為學(xué)生建立每一次回收作業(yè)的文件夾,例如在回收“EXCEL練習(xí)一”時(shí),用字符連接函數(shù)連接“HomeDir”列與字符“EXCEL練習(xí)一”,保存為批處理文件,下次作業(yè)時(shí),可以將“EXCEL練習(xí)一”替換為下次作業(yè)的名稱。

五、建立虛擬路徑的映射關(guān)系

對于不同用戶對某些文件及文件夾需要不同的操作權(quán)限,如教師布置的作業(yè)文件夾,為了防止學(xué)生誤刪,他們只有讀取和列表的權(quán)限。“D:\作業(yè)要求”是存放教師布置作業(yè)的文件夾,將這個(gè)文件夾(目錄)設(shè)為“Group1”,在“組”中的“Group1”中設(shè)置文件權(quán)限為“讀取”,目錄權(quán)限為“列表”,子目錄為“繼承”。此時(shí)各用戶只能訪問自己的目錄,不能訪問“Group1”設(shè)置的目錄,需設(shè)置“Group1”為虛擬路徑,映射到各個(gè)用戶的目錄中去。如果手動(dòng)配置需花費(fèi)大量時(shí)間,可以通過修改“ServUDaemon.ini”文件達(dá)到這個(gè)目的。在配置文件“ServUDaemon.ini”的最后加上格式為“VirPath1=D:\作業(yè)要求|d:\學(xué)生FTP目錄\01\張三|作業(yè)要求”的字符串,具體的操作可以用到EXCEL軟件的填充與函數(shù)功能,在圖一中,將“VirPath”列、“=D:\作業(yè)要求|”字符串、“HomeDir”列和“|作業(yè)要求”合并為一個(gè)字符串,K2單元格的函數(shù)為“=CONCATENATE(J2,"=D:\作業(yè)要求|",H2,"|作業(yè)要求")”,向下填充,完成“虛擬路徑”列的操作。。

將“虛擬路徑”列中的信息復(fù)制到“ServUDaemon.ini”文件中,重啟Serv—U后生效。參照以上方法,可能開發(fā)需要特殊權(quán)限的目錄,例如將學(xué)生上交作業(yè)的文件夾存放在一起,賦予學(xué)生文件的最大操作權(quán)限,但不允許他們創(chuàng)建和刪除文件夾。

六、更改FTP密碼的方法

在同一臺主機(jī)上配置一個(gè)WEB站點(diǎn),并使其執(zhí)行ASP代碼。編寫一個(gè)ASP網(wǎng)頁,與FTP共用一個(gè)數(shù)據(jù)庫,先從數(shù)據(jù)庫中讀出用戶輸入的用戶名及密碼,若用戶輸入的舊密碼與原來的密碼相同,則將新密碼經(jīng)過MD5加密后寫入數(shù)據(jù)庫。更改密碼的界面如圖八所示。

圖八

更改數(shù)據(jù)庫的主要代碼如下所示:

dimact,UserName,OldPassword,NewPassword,reNewPassword

act=Request.form("act")

ifact="update"then

UserName=Request.form("UserName")''''用戶名

OldPassword=Request.form("OldPassword")''''舊密碼

NewPassword=Request.form("NewPassword")''''新密碼

reNewPassword=Request.form("reNewPassword")''''重新輸入的新密碼

UserName=Replace(UserName,"''''","''''")''''去除輸入的用戶名中首尾空格

iflen(UserName)<1orlen(OldPassword)<1orlen(NewPassword)<1orlen(reNewPassword)<1then''''判斷輸入的信息是否為空

alert("表單沒有填寫完整")

endif

iftrim(NewPassword)<>trim(reNewPassword)then''''判斷兩次輸入的密碼是否一致

alert("密碼與確認(rèn)密碼不一樣")

endif

Sql0="selecttop1user,[password]from[Useraccounts]whereuser=''''"&Username&"''''"''''從數(shù)據(jù)庫中查詢該用戶密碼

setrs0=conn.execute(Sql0)''''將查詢結(jié)果保存在rs0中

ifrs0.eofandrs0.bofthen

alert("用戶名不存在")

else

dbname=rs0("user")''''取出用戶名

dbpassword=rs0("password")''''取出密碼

endif

cdbpassword=left(dbpassword,2)&md5(left(dbpassword,2)&OldPassword)''''將輸入的舊密碼進(jìn)行MD5加密

iftrim(cdbpassword)<>trim(dbpassword)then''''判斷新舊密碼是否一致

alert("密碼錯(cuò)誤")

else

rndstr=MyRandc(2)''''兩位隨機(jī)字母

newdbpassword=rndstr&md5(rndstr&NewPassword)''''將輸入的新密碼進(jìn)行MD5加密

sql2="update[Useraccounts]set[password]=''''"&newdbpassword&"''''whereuser=''''"&Username&"''''"''''用新密碼去替換數(shù)據(jù)庫中舊密碼

conn.execute(sql2)

alert("密碼已經(jīng)更改,可能要幾鐘后才能生效")

endif

endif

FTP服務(wù)器在平時(shí)學(xué)生作業(yè)管理上起了很大作用,特別是多媒體的作品制作課中,一堂課的時(shí)間不可能完成一個(gè)多媒體作品,學(xué)生將信息保存在服務(wù)器上,確保了信息的安全。在今后的實(shí)踐中,將進(jìn)一步改進(jìn)FTP的功能。