☆朱亚林
(如皋高等师范学校,江苏如皋 226500)
随着计算机网络技术在教育教学中的普及,信息化教学已经走入了常规课堂,越来越多学科(尤其是计算机学科)的作业都需要以电子文档的形式提交。纵观现在的电子作业提交方式,不外乎以下几种:一是以U盘的形式进行拷贝,二是通过电子教室软件即时提交,三是通过Email发送,四是通过IM软件进行发送,五是通过网络存储(如快盘、dropbox等软件)进行网络共享。表1将对这五种方式的优缺点进行比较。
表1
通过表1,可以发现,目前各种作业提交方式各有优劣。对学生而言,除使用U盘提交不够方便外,其他几种基于网络的方式都没有太大问题。而对于教师而言,这几种提交方式都不尽如人意,存在一定的缺陷。从教师的角度考虑,其理想状态是能在自己的计算机中按照班级、作业次数等规则设置几个文件夹,学生一旦通过网络提交作业,就能够自动地按照规则保存到这几个文件夹中。这样,只要网络存在,无论是学生还是教师,作业的提交与收取都不再有时间和空间的限制,且不繁杂,不需要消耗太多时间。
按照这样一个思路,笔者设计出一个基于快盘的作业提交系统,其需要达到如图1所示的目标:教师在计算机上安装快盘客户端,并在快盘目录下,按照作业提交规则,分班级、作业次数新建相应的文件夹。而这些文件夹信息都会即时通过Web服务器上的“作业提交与查询界面”来呈现。此时,学生就可以在该界面上选择班级文件夹、作业次数文件夹,然后提交作业,一旦作业提交成功就会通过Web服务器自动上传到快盘相应目录中,而教师计算机中相应的目录下也会即时同步到学生的作业文件,以此来完成作业的提交。
图1
对于图1所示的对象中,快盘是一项网络服务,我们只需下载相应软件即可,无需我们多做设置。本文重点讲解的是运行在Web服务器上的作业提交与查询界面的制作。
要完成上述开发,首先,准备一台支持PHP语言的Web服务器(使用普通计算机搭建即可,没有特殊要求),以下设计的网页应用程序将在该服务器上运行;其次,需要一个快盘账号(可到快盘网站免费申请)。
首先,到 http://www.kuaipan.cn/developers/document.htm获取快盘开发所需要使用的PHP版本的SDK[1]。所谓SDK,是指一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,它相当于为开发、应用相关软件而预留的拓展工具和接口。因此,有了SDK以后,与快盘的服务器通信就可以顺利实现。
在快盘PHP版本的SDK中,一般提供用户身份的验证功能、查询文件夹功能、上传文件功能、下载文件功能、新建文件(夹)功能、删除文件(夹)功能,等等,由于我们的程序只需要提供作业提交与查询功能,所以,使用到的主要是用户身份验证、文件上传、文件(夹)信息查询功能。
使用过快盘的用户都知道,需要向一个指定的快盘中上传文件,必须要通过身份验证才行。也就是说,只有提供了正确的用户信息,才能访问该账户下的相关内容。所以,学生通过网页端向指定的快盘账号上传文件首先遇到的就是身份验证的问题。我们不可能将用户名、密码告知学生,所以,只能使用快盘提供的OAuth协议来解决这个问题,即,教师用自己的快盘账号登录,授权给搭建在服务器上的网页应用程序,让该应用程序有权访问你的快盘,且该授权时间要足够长,以保证学生在任何时间都能顺利通过验证。因此,笔者将通过OAuth协议认证之后的access_token(访问令牌)信息保存到服务器上指定的目录下。在此之后,一旦该网页应用程序需要认证身份时,就去到该目录下读取该信息,从而保证学生使用时,可以顺利访问到快盘中相应的信息。
实现代码:
(1)在第一次通过身份验证后,将产生的$access_token保存到指定文件中。
快盘的SDK中提供了文件(夹)信息查询这一功能,但使用SDK得到的返回值是一个包含文件夹与文件各项信息的数组$ret。此时,我们可以通过PHP语言将该数组的内容解析后,以规范的形式显示出来。代码如下:
上述代码实现的是将文件夹与文件分开显示,并且点击文件夹的名称后,可以进入下一层文件夹中,从而实现文件夹的自由切换,方便学生查阅文件夹中的信息。
通过查询文件夹模块,我们可以获取到当前文件夹内,以及当前文件夹的路径两方面的信息。接下来,我们只要通过表单将需要上传的文件提交到该目录下就可以了。实现步骤如下:
上传文件的表单只需要一个form就可以了,具体代码如下:
表单制作好了,我们还需要将文件通过表单进行传输才行。上传文件的思路:先通过表单将文件提交到服务器上的一个临时中转的文件夹,比如:这里将会用到的upload,然后,再将这一文件通过SDK提供的文件上传功能从服务器上提交到快盘相应的目录下,最后删除服务器上的临时文件。具体实现代码如下:
图2
通过上述步骤,我们就实现了一个基于快盘API的作业提交系统,实际运行效果如图2所示,也可以通过访问 http://www.zhuyalin.cn/page/cloudpen -upload.html来 直观感受。通过该系统,借助于快盘这个网络存储工具,我们即可以达到本文所述目标,实现提交作业与收取作业的无缝对接,为信息化教学助力添翼。
[1]龚承军.快盘PHP SDK(附带各api的demo实现).http://bbs.kuaipan.cn/forum.php芽mod=viewthread&tid=21006