☆ 代 彦
(宜宾市第一中学校,四川宜宾 644000)
在教学中我们通常使用“任务驱动”的教学方式,先为学生布置一些上机任务,让学生在计算机上进行实践操作,然后教师到学生的计算机上去检查,以了解学生的学习情况。这样不仅麻烦,更重要的是许多学生的学习情况还来不及检查就已经下课了,使得对学生的学习情况无从考查。因此,笔者针对这个问题使用ASP.NET 技术编写了一个简单但很实用的程序以完成作业的回收,在教学中发挥了很大的作用。下面笔者就其实现方法加以介绍。
在ASP.NET 中实现上机作业的布置和回收只需要一个程序,并且学生机上不需要安装其它任何软件,它不但能收课堂作业也能收家庭作业。当学生把上机作业做好后,只要填上姓名,找出作业文件通过这个文件将上机作业传到教师机指定的文件夹中。此程序对上传的文件名进行了处理,上传后存到教师机上的文件名是以学生的名字进行命名的,如果出现学生重复提交作业,程序并不会覆盖原来的文件,而是在后面加数字序号来区别。这样教师就可以到指定的文件夹中对学生作业依次检查打分。为了防止学生恶意上传其它文件,本程序限制只能上传小于5M 的文件。
在学校教师机或服务器上大多安装的是Windows 2000 server 或Windows 2000 advanced server,这两种服务器操作系统只要安装了IIS(internet 服务信息)就可以支持ASP 了。对于没有安装的IIS 的可以点击:开始->设 置->控 制 面 板->添 加/删 除 程 序->添 加/删 除Windows 组件来完成IIS 的安装。注意:对于Windows 2000 系列,它的IIS 版本是5.0 的,它只能支持ASP。如果用ASP 来开发这个功能也可,但是需要其它组件或程序支持,程序写起来很不方便,效率也不高,因此,还需要对IIS 进行升级。这时我们可以到微软的主页上下载Microsoft .Net Framework 来安装以使服务器支持ASP.NET。如果你的服务器本身就是Windows 2003,这样只要你安装了IIS 就可以支持ASP.NET。
支持ASP.NET 的WEB 服务器架设好了,还必须设置用于发布Web 信息的站点,如内网站点:http://192.168.0.1。关于怎样设置Web 站点的文章在网上很常见,可以在网上搜索。要注意的是在设置的时候要给予站点读取、写入的权限,不然文件是不能传上来的。为了便于测试,我们在站点中建立一个test 的文件夹, 在里面建立一个index.aspx 的网页文件,最后因为我们的程序需要将学生上传的文件放入一个专用的文件夹“upfile”,因此还需要在test 的目录中建立一个名叫“upfile”的文件夹。我们的index.aspx 的内容如下:(单引号后面的是注释,可以不输入)
<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(″您的文件好像选错了哟!″)
Response.End() ' 如果上传文件的字节为0 或大于5M 就终止上传
End If
Dim s_FileName,d_FileName,d_FileName1 as String
Dim times
d_FileName1=Trim (StudentName.Value) ' 将姓名进行去空格处理,
If len(d_FileName1)<2 Then
Response.Write(″您的名字是不是输错了,或没有输入?″)
Response.End()
End if
s_FileName=FileUp.PostedFile.FileName ' 获取源文件在客户端的路径
s_FileName =right (S_FileName,Len (S_FileName) -InStrRev(S_FileName,″.″)+1) ' 获取源文件的扩展名
Dim fso= CreateObject(″Scripting.FileSystemObject″) '定义文件操作对象
times=1
d_FileName1 =Server.MapPath (″ ./″ ) +″ upfile\″ +d_FileName1
d_FileName=d_FileName1+s_FileName ' 生成最终文件路径
Do While fso.FileExists (d_FileName) ' 文件存在否?若存在则在后面加序号以区别
d_FileName =d_FileName1 +″ _″ +Cstr (times) +s_FileName
times=times+1 Loop
FileUp.PostedFile.SaveAs( d_FileName ) ' 将文件保存在服务器上
Response.Write(″作业提交成功!!!″)
Response.End()
End Sub
</script>
<html><title>作业</title>
<body bgcolor=white>
<form enctype=″multipart/form-data″ runat=″server″>
明天是您的朋友李明的生日,为了庆祝他的生日,请用您Word 为他写一封祝贺信。要求:<br>
(1)先写一封简短的信,必需按书信格式;<br>
(2)将信的正文格式设置为“两端对齐”,并为正文添加5%的底纹;<br>
(3)将信的左边距设为3.5 厘米,右边距设为3 厘米;<br>
(4)设置页脚,页脚文字为“生日快乐”;<br>
(5)在信中插入任意一张图片,设置为四周环绕。<br>
将作业完成后,通过此页面提交到教师机上。<br>
姓名:<input type=″text″ id=″StudentName″ runat=″server″><br>
作业 文件: <input name =″File″ type =″File″ id =″FileUp″ runat=″server″><br>0
<asp:button id =″ Upload″ OnClick =″ UploadFile″Text=″交作业″ runat=″server″/>
</form>
</body>
</html>
只要学生端访问:http://192.168.0.1/test 就可以访问这个作业布置/回收网页了,当作业做完后就可以通过这个网页将作业上传到教师服务器上的upfile 文件夹中,如果同一个学生上传多次将以这个学生的姓名下面加数字来标识,而不会将原来上传的文件覆盖。