☆ 代 彥
(宜賓市第一中學(xué)校,四川宜賓 644000)
在教學(xué)中我們通常使用“任務(wù)驅(qū)動(dòng)”的教學(xué)方式,先為學(xué)生布置一些上機(jī)任務(wù),讓學(xué)生在計(jì)算機(jī)上進(jìn)行實(shí)踐操作,然后教師到學(xué)生的計(jì)算機(jī)上去檢查,以了解學(xué)生的學(xué)習(xí)情況。這樣不僅麻煩,更重要的是許多學(xué)生的學(xué)習(xí)情況還來(lái)不及檢查就已經(jīng)下課了,使得對(duì)學(xué)生的學(xué)習(xí)情況無(wú)從考查。因此,筆者針對(duì)這個(gè)問(wèn)題使用ASP.NET 技術(shù)編寫(xiě)了一個(gè)簡(jiǎn)單但很實(shí)用的程序以完成作業(yè)的回收,在教學(xué)中發(fā)揮了很大的作用。下面筆者就其實(shí)現(xiàn)方法加以介紹。
在ASP.NET 中實(shí)現(xiàn)上機(jī)作業(yè)的布置和回收只需要一個(gè)程序,并且學(xué)生機(jī)上不需要安裝其它任何軟件,它不但能收課堂作業(yè)也能收家庭作業(yè)。當(dāng)學(xué)生把上機(jī)作業(yè)做好后,只要填上姓名,找出作業(yè)文件通過(guò)這個(gè)文件將上機(jī)作業(yè)傳到教師機(jī)指定的文件夾中。此程序?qū)ι蟼鞯奈募M(jìn)行了處理,上傳后存到教師機(jī)上的文件名是以學(xué)生的名字進(jìn)行命名的,如果出現(xiàn)學(xué)生重復(fù)提交作業(yè),程序并不會(huì)覆蓋原來(lái)的文件,而是在后面加數(shù)字序號(hào)來(lái)區(qū)別。這樣教師就可以到指定的文件夾中對(duì)學(xué)生作業(yè)依次檢查打分。為了防止學(xué)生惡意上傳其它文件,本程序限制只能上傳小于5M 的文件。
在學(xué)校教師機(jī)或服務(wù)器上大多安裝的是Windows 2000 server 或Windows 2000 advanced server,這兩種服務(wù)器操作系統(tǒng)只要安裝了IIS(internet 服務(wù)信息)就可以支持ASP 了。對(duì)于沒(méi)有安裝的IIS 的可以點(diǎn)擊:開(kāi)始->設(shè) 置->控 制 面 板->添 加/刪 除 程 序->添 加/刪 除Windows 組件來(lái)完成IIS 的安裝。注意:對(duì)于Windows 2000 系列,它的IIS 版本是5.0 的,它只能支持ASP。如果用ASP 來(lái)開(kāi)發(fā)這個(gè)功能也可,但是需要其它組件或程序支持,程序?qū)懫饋?lái)很不方便,效率也不高,因此,還需要對(duì)IIS 進(jìn)行升級(jí)。這時(shí)我們可以到微軟的主頁(yè)上下載Microsoft .Net Framework 來(lái)安裝以使服務(wù)器支持ASP.NET。如果你的服務(wù)器本身就是Windows 2003,這樣只要你安裝了IIS 就可以支持ASP.NET。
支持ASP.NET 的WEB 服務(wù)器架設(shè)好了,還必須設(shè)置用于發(fā)布Web 信息的站點(diǎn),如內(nèi)網(wǎng)站點(diǎn):http://192.168.0.1。關(guān)于怎樣設(shè)置Web 站點(diǎn)的文章在網(wǎng)上很常見(jiàn),可以在網(wǎng)上搜索。要注意的是在設(shè)置的時(shí)候要給予站點(diǎn)讀取、寫(xiě)入的權(quán)限,不然文件是不能傳上來(lái)的。為了便于測(cè)試,我們?cè)谡军c(diǎn)中建立一個(gè)test 的文件夾, 在里面建立一個(gè)index.a(chǎn)spx 的網(wǎng)頁(yè)文件,最后因?yàn)槲覀兊某绦蛐枰獙W(xué)生上傳的文件放入一個(gè)專(zhuān)用的文件夾“upfile”,因此還需要在test 的目錄中建立一個(gè)名叫“upfile”的文件夾。我們的index.a(chǎn)spx 的內(nèi)容如下:(單引號(hào)后面的是注釋?zhuān)梢圆惠斎耄?/p>
<script language=″VB″ runat=″server″>
Sub UploadFile(s As Object, e As EventArgs)
If FileUp.PostedFile.ContentLength =0 or FileUp.PostedFile.ContentLength>5000000 Then
Response.Write(″您的文件好像選錯(cuò)了喲!″)
Response.End() ' 如果上傳文件的字節(jié)為0 或大于5M 就終止上傳
End If
Dim s_FileName,d_FileName,d_FileName1 as String
Dim times
d_FileName1=Trim (StudentName.Value) ' 將姓名進(jìn)行去空格處理,
If len(d_FileName1)<2 Then
Response.Write(″您的名字是不是輸錯(cuò)了,或沒(méi)有輸入?″)
Response.End()
End if
s_FileName=FileUp.PostedFile.FileName ' 獲取源文件在客戶(hù)端的路徑
s_FileName =right (S_FileName,Len (S_FileName) -InStrRev(S_FileName,″.″)+1) ' 獲取源文件的擴(kuò)展名
Dim fso= CreateObject(″Scripting.FileSystemObject″) '定義文件操作對(duì)象
times=1
d_FileName1 =Server.MapPath (″ ./″ ) +″ upfile\″ +d_FileName1
d_FileName=d_FileName1+s_FileName ' 生成最終文件路徑
Do While fso.FileExists (d_FileName) ' 文件存在否?若存在則在后面加序號(hào)以區(qū)別
d_FileName =d_FileName1 +″ _″ +Cstr (times) +s_FileName
times=times+1 Loop
FileUp.PostedFile.SaveAs( d_FileName ) ' 將文件保存在服務(wù)器上
Response.Write(″作業(yè)提交成功!??!″)
Response.End()
End Sub
</script>
<html><title>作業(yè)</title>
<body bgcolor=white>
<form enctype=″multipart/form-data″ runat=″server″>
明天是您的朋友李明的生日,為了慶祝他的生日,請(qǐng)用您Word 為他寫(xiě)一封祝賀信。要求:<br>
(1)先寫(xiě)一封簡(jiǎn)短的信,必需按書(shū)信格式;<br>
(2)將信的正文格式設(shè)置為“兩端對(duì)齊”,并為正文添加5%的底紋;<br>
(3)將信的左邊距設(shè)為3.5 厘米,右邊距設(shè)為3 厘米;<br>
(4)設(shè)置頁(yè)腳,頁(yè)腳文字為“生日快樂(lè)”;<br>
(5)在信中插入任意一張圖片,設(shè)置為四周環(huán)繞。<br>
將作業(yè)完成后,通過(guò)此頁(yè)面提交到教師機(jī)上。<br>
姓名:<input type=″text″ id=″StudentName″ runat=″server″><br>
作業(yè) 文件: <input name =″File″ type =″File″ id =″FileUp″ runat=″server″><br>0
<asp:button id =″ Upload″ OnClick =″ UploadFile″Text=″交作業(yè)″ runat=″server″/>
</form>
</body>
</html>
只要學(xué)生端訪問(wèn):http://192.168.0.1/test 就可以訪問(wèn)這個(gè)作業(yè)布置/回收網(wǎng)頁(yè)了,當(dāng)作業(yè)做完后就可以通過(guò)這個(gè)網(wǎng)頁(yè)將作業(yè)上傳到教師服務(wù)器上的upfile 文件夾中,如果同一個(gè)學(xué)生上傳多次將以這個(gè)學(xué)生的姓名下面加數(shù)字來(lái)標(biāo)識(shí),而不會(huì)將原來(lái)上傳的文件覆蓋。