信息技术教学系统中利用asp实现文件上传
摘要计算机和因特网的应用和普及其强大的功能已为人们深刻认识校园网络的建成使学校实现了管理网络化和教学手段现代化这对于提高学校的管理水平和教学质量具有十分重要的意义。在我校研发的信息技术教学系统中需要有一项功能可以使学生利用网页提交作业实现作业从本地计算机端传到服务器端。本文重点分析如何利用asp实现文件上传功能。
随着网络技术的不断发展和Internet的日益普及许多学校都建立了校园网络并投入使用这无疑对加快信息处理提高工作效率减轻劳动强度实现资源共享都起到了无法估量的作用。在我校的信息技术教学过程中为了方便教学我校老师研发了信息技术课程教学系统通过该系统学生可以很方便的自主学习、 自主评测同时也减轻了教师的教学负担。
该系统是基于asp开发的。Asp是Active Server Page的缩写意为“动态服务器页面”是微软公司开发的代替CGI脚本程序的一种应用是一种服务器端脚本编写环境可以用来创建和运行动态网页或Web应用程序。
在本系统中有一项功能可以使学生利用网页提交作业实现作业从本地计算机端传到服务器端。现在通用的asp实现文件上传方法主要有两种组件上传法和无组件上传法。
所谓组件上传法是利用编译好的active server组件完成 比如Persits软件公司的AspUpload 将AspUp load.dll放在任意目录中例如c:\然后在windows的“开始――运行”窗口中执行命令“regsvr32 c:\AspUpload.dll”。相应的上传脚本Upload.asp主要代码如下
Set Uplo ad=Server.CreateObject(“Pers its.Upload.1”)
Count=Upload.S ave(“c:\up load”)
这段ASP脚本的第一行创建一个AspUpload对象的实例第二行调用组件的Save方法它实际上的作用是解析从浏览器发送的东西计算出有多少个文件正在上传并且把他们存在服务器上指定的目录。这种方法优点是代码少使用方便。不过有一个很大的弊端如果使用别人的服务器而对方不允许你安装第三方组件这个时候就必须使用无组件上传法。
无组件上传原理也比较简单核心就是分析字符串。不过在实际操作时却很难。其中的关键问题还是对原理的剖析不够深入或是因为过程太繁琐。下面我们来分布说明
一、添加浏览文件的按钮
通常情况下使用HT ML表单form从浏览器向服务器传递数据。这个表单中可能包含文本域、检验框、按钮以及上载文件的文件类型控制。表单元素中的enc typ e属性规定了传递给服务器的表数据集编码的内容类型 当向服务器传送大量文本、包含非ASCII字符或二进制数的数据时应使用“mult ipart/form-data”内容类型。而要浏览上传附件我们一般使用这个元素。
对于我们这个学习系统来讲可以在g 1 index.htm页面中添加代码如下
二、获取上传的文件
后台asp程序中需要获取上传的文件可以使用采用ADO Stream对象的BinaryRead
方法来读取。 BinaryRe ad方法是对当前输入流进行指定字节数的二进制读取结合ADOS tr e am对象的TotalByte s属性可以将所有表单提交的数据全部变成二进制不过这些数据都是经过编码的。部分代码如下
Set m_binForm=Server.CreateObject(“ADODB.Stream”)m_binForm.Open()dom_binForm.Write Request.BinaryRead(lng ChunkByte)lngRe adS iz e=lng ReadS ize+lng Chunk ByteiflngReadS ize>=lngRequestSize then exit doloop
三、保存文件
保存文件可以利用ADO STREAM中提供的二进制文件操作方法来完成保存文件的语句是 StreamOBJ.SaveToFile(fileName,2)。
在具体实现过程中可以将有关的操作存放在一个类文件Up LoadClas s.asp中在应用时直接将该类文件包含在ASP程序中就可以了。
Up load.asp页面部分代码如下:dim saveset save=new UpLoadClasssave.SavePath=“/学生作业/”&left(userid,2)&”/”save.省略中实现文件上传功能比较简单我们可以在页面上使用控件。主要代码如下
FileUpLo ad 1.PostedFile.SaveAs(Server.MapPath(“/Files/”)+FileUp Load 1.FileName);
而在asp中并没有封装好的PostedFile方法所以要自己解决。
参考文献:
[1]ASP编程基础及应用教程2004年
[2]网络程序设计――ASP 第二版 2004年
无忧云怎么样?无忧云服务器好不好?无忧云值不值得购买?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,自营有国内雅安高防、洛阳BGP企业线路、香港CN2线路、国外服务器产品等,非常适合需要稳定的线路的用户,如游戏、企业建站业务需求和各种负载较高的项目,同时还有自营的高性能、高配置的BGP线路高防物理...
中午的时候有网友联系提到自己前几天看到Namecheap商家开学季促销活动期间有域名促销活动的,于是就信注册NC账户注册域名的。但是今天登录居然无法登录,这个问题比较困恼是不是商家跑路等问题。Namecheap商家跑路的可能性不大,前几天我还在他们家转移域名的。这里简单的记录我帮助他解决如何重新登录Namecheap商家的问题。1、检查邮件让他检查邮件是不是有官方的邮件提示。比如我们新注册账户是需...
官方网站:点击访问青云互联官网优惠码:五折优惠码:5LHbEhaS (一次性五折,可月付、季付、半年付、年付)活动方案:的套餐分为大带宽限流和小带宽不限流两种套餐,全部为KVM虚拟架构,而且配置都可以弹性设置1、洛杉矶cera机房三网回程cn2gia 洛杉矶cera机房  ...