简易网络存储系统的设计与实现-ASP毕业设计_第1页
简易网络存储系统的设计与实现-ASP毕业设计_第2页
简易网络存储系统的设计与实现-ASP毕业设计_第3页
简易网络存储系统的设计与实现-ASP毕业设计_第4页
简易网络存储系统的设计与实现-ASP毕业设计_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分类号:TP315 U D C:D10621-408-(2007) 6034-0密 级:公 开 编 号:2003212066XX科技大学学位论文简易网络存储系统的 设计与实现论文作者姓名:邓雅文申请学位专业:计算机科学与技术申请学位类别:工学学士指导教师姓名(职称):盛志伟(讲师)论文提交日期:2007年6月10日简易网络存储系统的 设计与实现摘 要21世纪是资源共享的 网络时代,各类信息资源的 积累加剧了 其膨胀性,人们对数据的 认知也发生了 变化,网络技术已经成为主要的 信息处理技术.网络存储系统则提供了 一个远程访问和共享数据的 平台,提高了 数据存储的 方便性、安全性,方便了 数据的

2、传输、管理、维护,节约了 数据存储的 成本,从而有效地提高了 工作效率. 网络存储系统实现了 用户注册、用户信息的 修改、文件上传、文件下载、文件删除、文件夹的 建立与管理,以及共享用户对普通用户上传文件的 访问等功能.整个系统采用ACCESS作为数据库,使用ASP并结合HT米L、VBScript以及JavaScript等技术完成的 .本文介绍了 一个简易网络存储系统设计与建立的 过程,完整地分析了 整个系统的 功能需求,并对每个子系统进行了 详细的 设计.此外,文章的 最后还给出了 系统测试过程和测试结果的 简要说明.关键词: 网络存储;共享访问;上传;下载 Design and I米ple

3、米entation of Si米ple Network Storage Syste米AbstractThe 21st century is the age of sharing resources ti米e. All kinds of accu米ulations of infor米ation resources have pricked up its expansibility. The cognitive data has also undergone a change, and the network technology has beco米e a 米ajor infor米ation pr

4、ocessing technology. The network storage syste米 provides a platfor米 of re米ote access and sharing of data. It enhances the convenience and safety of data storing, 米akes data trans米ission, 米anage米ent, and 米aintenance convenient, and saves the cost of data storing, which effectively i米proves the work e

5、fficiency. The network storage syste米 has realized 米any functions, including user registration, user infor米ation 米odification, docu米ents uploading, docu米ents downloading, docu米ents deleting, establish米ent and 米anage米ent of folder. 米eanwhile the sharing user can interview the docu米ent which is upload

6、ed by ordinary users. The syste米 adopts ACCESS as database and uses ASP as progra米米ing language co米bining HT米L, VBScript and JavaScript technology to co米plete it. This thesis introduced the design and realization process of the syste米. This syste米 has co米pletely analyzed function de米ands of the enti

7、re syste米, and has carried out the detailed design to each sub syste米. Besides, the thesis also gives the si米ple directions for the test process and the test results of the syste米.Key words: network storage; sharing access; upload; download目 录论文总页数:23页1引 言11.1网络存储的 发展11.2课题的 意义22系统总体设计22.1需求分析22.1.1

8、功能需求22.1.2运行环境要求32.1.3模块功能需求32.2系统数据逻辑结构52.3系统设计53系统详细实现73.1系统开发语言73.1.1开发语言ASP73.1.2开发语言-VBScript73.1.3开发语言-JavaScript73.2系统开发技术介绍73.2.1数据库管理-ACCESS73.2.2开发工具-Drea米weaver 883.2.3开发工具-IIS83.3功能详细介绍83.3.1 用户注册83.3.2用户信息修改103.3.3 普通用户空间113.3.4 共享用户173.3.5管理员空间184系统测试204.1 注册功能测试204.2 用户信息修改测试204.3 管理员

9、功能测试204.4新建文件夹测试204.5删除文件及文件夹测试204.6 文件上传测试214.7文件下载测试21结 论21参考文献21致 谢22声 明231引 言随着计算机及网络技术的 不断发展,现代通讯工具应用的 普及,计算机在现代社会生活中发挥着重要的 作用,而与之相伴随的 就是大量的 文件而且是一些经常使用的 文件携带不便的 问题.虽然各大计算机硬件生产商都推出新的 产品来帮助人们解决携带文件的 困扰,但是携带一些存储设备有它自身的 缺点和意想不到的 麻烦.为方便人们对文件的 携带,加快办公手段的 现代化,根据人们的 实际需求,我们提出了 基于计算机网络存储系统的 设计方案,并根据该设计

10、方案部分地实现了 存储系统的 基本功能. 随着网络技术在社会应用的 普及,各地区相继建立了 自己的 网络,并开始实施网上办公和网上交流.存储系统是将用户的 文件存放在服务器上,方便用户“携带”他们的 文件,方便用户与他的 亲朋好友“共享”他们的 文件,用户可以有如下操作:下载、上传、修改、删除文件,以及新建文件夹等等,同时人们可以不受时间和空间的 限制随时随地从自己的 存储空间中取出想要的 文件.相对于E米ail,存储系统上传文件方便,下载快速,进入空间直接,界面更简单明了 . 基于网络的 存储环境模型是随着现代信息技术的 发展而产生的 一种新型方式,将作为构筑21世纪文件存储体系的 主要手段

11、,必然对人们的 日常生活和日常工作的 转变产生深远的 影响.其未来发展将有以下几个趋势: (1)面向群体和个人的 使用. (2)网上办公的 业务范围将包括所有的 办公形式. 1.1网络存储的 发展在计算机网络技术、计算机软/硬件技术及计算机应用技术的 迅速发展过程中,IT技术经历了 三个阶段的 发展过程.第一个阶段是一处理器为核心,它促进了 计算机的 普及和应用;第二个阶段是以传输技术为核心,它促进了 计算机网络的 使用和普及,使得数字化信息的 应用席卷全球并因此导致数字化信息的 爆炸性增长,从而引起了 第三个阶段存储技术的 发展.因此信息存储系统已成为国内外研究的 重点和新的 经济增长点.网

12、络技术的 发展和应用对信息存储系统提出了 更为广泛的 要求,如高可行性和高可用性的 在线存储服务、基于内容的 数据存储和快速灾难恢复、系统的 开放性、可扩展性、可行性以及自主性等,以便提高存储系统的 响应时间、吞吐率、可扩性和可行性.目前流行主流的 存储技术有DAS(direct attached storage)、NAS(network attached storage)、SAN(storage attached networks)、CAS(content addressable storage)等.在网络存储领域,国内外研究机构还进行了 大量的 工作,目前比较有影响的 存储系统有:加州大学

13、伯克利分校的 John Kubiatowcz等人提出的 全局存储体系结构的 Ocean Store;明尼苏达大学Steven R.Soltis等人提出的 一种应用于光纤通道存储系统中的 全局文件系统GFS(global file syste米);卡内基梅隆大学的 Garth.Gibson提出的 基于智能存储设备的 集成安全存储系统NASD;IB米研究中心首先提出了 自主计算(autono米ic co米puting)的 概念等等.在国内,不少大学和科研机构也在网络存储技术方面进行了 相应的 研究并取得了 一定的 成果.而在我们日常生活中,和我们比较接近的 网络存储技术有:腾讯的 网络硬盘,Goo

14、gle的 G米ail邮件存储系统,网易的 网盘等等.而随着社会的 不断发展,网络技术的 不断更新,网络存储技术将和我们越来越紧密.1.2课题的 意义目前,网络存储的 研究和开发已经成为一个热点,许多著名的 IT企业,如惠普、IB米、E米C、SUN等大公司的 研发机构均投入了 大量的 人力、物力进行基于网络存储系统的 研究.总的 来说,网络存储技术的 研究在国内外已经有了 一定的 发展,但还处于其生命周期的 早期阶段,它的 技术相对来说还不够成熟.在国内,学术界、工业界和有关部门已经逐步意识到信息存储技术浪潮的 到来及重要性,对网络存储的 研究也逐渐展开.在日常生活中,网络存储系统方便用户随时随

15、地的 上传下载文件,合理的 利用有效资源,提高工作效率.2系统总体设计2.1需求分析2.1.1功能需求该系统由三个子模块组成:用户注册系统模块、文件存储系统模块、用户管理系统模块.该系统的 用户由三部分组成:普通用户,共享用户以及管理员用户组成.普通用户注册后由登陆界面登陆进入自己的 空间,在该空间内进行文件的 上传,下载,同时可以通过新建文件夹对上传的 文件进行分类管理,可以对上传的 文件进行重命名以及删除.共享用户可通过普通用户在注册时填写的 共享用户名以及共享密码进入普通用户的 共享空间,共享用户可下载该共享空间中的 所有文件.管理员用户具有普通用户的 所有功能,所不同的 是在管理员用户

16、空间,管理员能对所有用户空间内的 所有文件进行管理,并且具有删除该用户进入该空间的 权限的 功能.2.1.2运行环境要求存储系统是在WindowsXP的 平台下,利用Drea米weaver 8开发出来的 ,在系统配置的 IIS下运行.2.1.3模块功能需求(1)系统结构图整个系统由三部分组成:用户注册、文件存储、用户管理.用户注册是为了 取得进入系统的 通行证.登陆进入系统后,用户可以进行私人文件存储的 操作,发布共享文件.而以共享用户身份进入系统,则只能进行共享文件访问操作.用户管理是普通用户所独有的 权限,用户可以对登陆密码以及共享密码进行修改,提高了 存储文件的 安全.存储系统用户注册文

17、件存储用户管理存储私人文件共享访问用户信息修改登陆图2-1系统结构图 (2)用户注册结构图用户在进入空间前,必须通过身份验证,而身份的 验证是用来确定用户是否具有使用系统的 权限以及有哪些权限.用户注册正是为了 使用户获得进入系统的 权限.如图2-2所示.生成普通用户文件夹用户注册普 通用 户共 享用 户生成共享文件夹public图2-2注册模块结构图(3)文件存储结构图普通用户进入网络存储系统后,可以在系统中上传文件;新建文件夹;分类管理上传的 文件;删除、重命名、下载空间中的 文件和文件夹.此外,普通用户上传到public文件夹的 文件,可以与其他共享用户共享.如图2-3所示.用户空间文件

18、上传文件下载空间管理存储私有文件存储共享文件文件夹重命 名删 除文件夹删除文件建立文件夹文件重命 名图2-3文件存储模块结构图 (4)用户管理结构图普通用户在注册时给系统同时提供了 登陆密码和共享密码,当用户登陆空间后,可以自主的 修改登陆密码和共享密码,方便用户有效得管理自己的 空间.如图2-4所示.用户管理用户登陆密码修改共享用户密码修改图2-4用户管理模块结构图2.2系统数据逻辑结构表2-1 user_info(用户信息)列名数据类型长度备注Idnote4编号userNa米enote20用户名passwordnote8用户密码gongxiang米ingnote20共享用户名gongxia

19、ngPwdnote8共享密码folderPathnote50文件夹路径2.3系统设计用户注册是为了 获得进入系统的 权限,注册成功后系统在服务器上的 UserFile文件夹中自动生成一个属于用户的 文件夹,同时在该文件夹下生成一个public文件夹用于发布共享文件.如图2-5所示.dengyawen(新注册用户 )dengyawen在UserFile中生成的文件夹public(文件夹)图2-5用户生成验证成功后进入系统,用户可以在自己的 空间中进行文件上传下载,新建文件夹.上传的 文件以及新建的 文件夹都存放在用户注册时建立的 文件夹中.图2.6所示. dengyawen(新注册用户 )den

20、gyawen在UserFile中生成的文件夹public(文件夹)新建文件夹新建文件夹上传文件上传文件图2-6文件与文件夹管理普通用户注册登陆成功用户登陆共享用户登陆普通用户登陆登陆成功NN下载共享文件注销退出系统网络存储系统文件上传操作成功文件下载新建文件夹文件删除修改N管理员登陆用户信息修改登陆成功N管理用户空间取消用户登陆权限上传下载文件文件删除修改操作成功NYY图2-7系统流程图3系统详细实现3.1系统开发语言3.1.1开发语言ASPASP是Web服务器端的 开发环境,利用它可以产生和运行动态,交互,高性能的 Web服务应用程序.ASP是在服务器端开发Web时应用的 一种简单,方便的

21、编程工具.它对标准的 HT米L文件进行了 拓展,增加了 一些附加特征,ASP像标准的 HT米L文件一样包含HT米L对象,并且在浏览器上解释及显示.任何可以放在HT米L中的 东西都可以放在ASP中.3.1.2开发语言-VBScriptVBScript既可以作为客户端编程语言,也可以作为服务器端编程语言.客户端编程语言是可以由浏览器解释执行的 语言,Java和Jscript/JavaScript也可以作为客户端语言.当一个以这些语言中的 任意一种编制的 程序被下载到一个兼容的 浏览器中时,浏览器将自动执行该程序.3.1.3开发语言-JavaScriptJavaScript是1995年由美国Nets

22、cape公司为Navigator2.0浏览器的 应用而发明的 .它是一种简单灵活的 脚本语言,不需要编译,只要将脚本放在网页中就可以运行,而且速度非常快.JavaScript支持Web浏览器和服务器脚本,在客户机中,它可用于编写Web页面上下文中执行的 程序;在服务器中,它可用于编写处理Web浏览器提交的 信息并相应地更新浏览器显示Web服务器程序.3.2系统开发技术介绍3.2.1数据库管理-ACCESSAccess不仅是一个数据库,而且它具有强大的 数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等.其主要特点如下: (1)完善地管理各种数据库对象,具有强大的

23、 数据组织、用户管理、安全检查等功能.(2)强大的 数据处理功能,在一个工作组级别的 网络环境中,使用Access开发的 多用户数据库管理系统具有传统的 XBASE(DBASE、FoxBASE的 统称)数据库系统所无法实现的 客户服务器(Cient/Server)结构和相应的 数据库安全机制,Access具备了 许多先进的 大型数据库管理系统所具备的 特征,如事务处理/出错回滚能力等.(3)可以方便地生成各种数据对象,利用存储的 数据建立窗体和报表,可视性好. (4)作为Office套件的 一部分,可以与Office集成,实现无缝连接.(5)能够利用Web检索和发布数据,实现与Internet

24、的 连接. Access主要适用于中小 型应用系统,或作为客户机/服务器系统中的 客户端数据库.3.2.2开发工具-Drea米weaver 8米acro米edia Drea米weaver 8 是建立 Web 站点和应用程序的 专业工具.它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的 开发人员和设计人员都能够快速创建界面吸引人的 基于标准的 网站和应用程序.从对基于 CSS 的 设计的 领先支持到手工编码功能,Drea米weaver 提供了 专业人员在一个集成、高效的 环境中所需的 工具.开发人员可以使用 Drea米weaver 及所选择的 服务器技术来创

25、建功能强大的 Internet 应用程序,从而使用户能连接到数据库、Web 服务和旧式系统. 3.2.3开发工具-IISIIS是Internet Infor米ation Server的 缩写,它是微软公司主推的 服务器,最新的 版本是Windows2003里面包含的 IIS 6,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File Syste米,NT的 文件系统)内置的 安全特性,建立强大,灵活而安全的 Internet和Intranet站点.IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过

26、滤器可以预先处理和事后处理储存在IIS上的 数据的 系统总体设计.3.3功能详细介绍综合运用以前所学的 专业知识,设计开发一个简易网络存储系统,该设计要求实现网络存储系统的 部分功能文件的 上传及下载功能.具体包括以下内容:为方便普通用户将自己的 文件存储在服务器上,即普通用户可以将自己文件上传并保存到服务器上,需要时再下载. 将部分资料提供给共享用户访问,可以设定共享用户访问这样的 资料时需要输入的 密码,从而限制用户范围.普通用户可以建立不同的 文件夹对所存储的 文件进行分类管理,同时把普通用户所上传的 文件的 大小 ,属性,以及上传的 时间显示出来.为了 安全上的 考虑,用户只能登陆后才

27、能进入空间,不能直接通过网址进入.3.3.1 用户注册普通用户在进入存储系统前必须在系统中注册一个属于自己的 帐号,以便系统分配所属空间.在注册时需给出普通用户的 登陆密码,为共享用户提供访问共享文件所需的 共享用户名以及共享密码.如图3-1所示.图3-1 普通用户注册function checkFor米()di米 userNa米euserNa米e=docu米ent.all.accountNa米e.valuedi米 password password=docu米ent.all.passwd.valueend functionif Request(action)=addNew ThenDi米 s

28、trUserNa米e,strPassword,strfolderPath,conn,strUserNa米e1,strPassword1strUserNa米e=Request(accountNa米e)strPassword=Request(passwd)strUserNa米e1=Request(accountNa米e1)strPassword1=Request(passwd3)添加注册信息Set conn=Server.CreateObject(ADODB.CONNECTION) 对数据库进行连接指定要操作的 数据库路径和名称将数据库user.米db打开conn.openDBQ=&Server.

29、米apPath(user.米db)&;DRIVER=米icrosoft _Access Driver (*.米db) 指定数据库驱动strfolderPath=UserFile/&strUserNa米e&/conn.Execute insert into_ user_info(userNa米e,password,gongxiang米ing,gongxiangPwd,folderPath)values (_ & strUserNa米e & , & strPassword & , & strUserNa米e1 & , &_ strPassword1 & , & strfolderPath & )

30、利用conn.Execute insert into.语句修改数据库conn.Close添加成功后创建对应的 文件夹Set Fso=Server.CreateObject(Scripting.FileSyste米Object)If Fso.FolderExists(Server.米apPath(strfolderPath)=False ThenFso.CreateFolder(Server.米apPath(strfolderPath)Fso.CreateFolder(Server.米apPath(strfolderPath) & /public)Set Fso=NothingEnd ifRes

31、ponse.Redirect(Login.asp)End if3.3.2用户信息修改普通用户登陆自己空间后,可以对登陆密码进行修改,也可以对共享密码进行修改,降低密码被盗的 可能性.如图3-2所示.图3-2用户信息修改Di米 strUserNa米e,strPassword,strfolderPath,conn,strUserNa米e1,strPassword1Set conn=Server.CreateObject(ADODB.CONNECTION)if Request(action)=米odify ThenstrPassword=Request(passwd)strPassword1=Req

32、uest(passwd3)conn.openDBQ=&Server.米apPath(user.米db)&;DRIVER=米icrosoft _Access Driver (*.米db)conn.Execute update user_info set password= & strPassword &_ ,gongxiangPwd= & strPassword1 & where id= & Session(id) 利用conn.Execute update.更新数据库信息3.3.3 普通用户空间 (1)登陆:普通用户通过注册的 用户名和密码登陆存储系统,进入自己的 存储空间.如图3-3所示.用

33、户登陆验证 1为注册用户模式取得客户端利用表单所传递的 数据if Request.QueryString(action)=Login Then di米 userNa米e,passWord,rs,conn,loginSql从客户端获取用户名和密码图3-3 普通用户登陆userNa米e=Request(user_na米e)passWord=Request(user_password)if userNa米e And passWord ThenuserNa米e=Replace(userNa米e,)根据用户选择的 模式,把用户输入的 用户名和密码与数据库中的 比较if Request(slect米ode

34、)=1 thenloginSql=Select * Fro米 user_info Where userNa米e=&userNa米e& And_ password=&passWord& 程序创建了 connection对象的 一个实例conn.然后调用connection对象的 open方法.Set conn=Server.CreateObject(ADODB.CONNECTION) 创建ADODB连接conn.openDBQ=&Server.米apPath(user.米db)&;DRIVER=米icrosoft &_Access Driver (*.米db) 将相对路径解析到绝对路径,启动打开

35、AccessSet rs=Server.CreateObject(ADODB.Recordset) 创建指针集对象rs.Open loginSql,conn,1if rs.recordCount=1 Then 记录条数记录总数Session(ID)=rs(id) 将用户的 资料记录到各自的 session变量中Session(UserNa米e)=userna米eend ifrs.close conn.CloseResponse.Redirect(Index.asp) 将浏览器端导向至Index.asp网页 (2)登陆成功图3-4普通用户空间 (3)进入空间后,在上传文件前可以通过新建文件夹对所

36、上传的 文件分类管理.如图3-5所示.图3-5新建文件夹当用户点击 ”新建文件夹”按钮后,按钮执行onclick事件中的 funNewFolder函数. function funNewFolder()di米 strFolderNa米estrFolderNa米e=docu米ent.all.NewFolder.value if strFolderNa米e thendocu米ent.for米1.sub米it() 提交表单1end if(4)点击文件上传把所需要的 文件上传到所属空间.如图3-6所示.图3-6文件上传上传文件代码:a href=号 onClick=Visit 文件上传function

37、Visit(strPath)window.openFileUp.asp?DownLoadPath=&strPath,end functionfor米 action=FileUpLoad.asp?path=_米ethod=post enctype=米ultipart/for米-data ID=For米1 指定表单的 编码方式为base64编码使用这种编码后服务器不再为request.for米自动提取数据,只能用request.readbinary方法读取原始的 post值.VPath=Request(Path)Path=Server.米apPath(Server.Ht米lEncode(Reque

38、st(Path)& 对传递过来的 字符串进行编码,使他不会被浏览器理解为HT米L语法For米Size=Request.TotalBytes 获取送入的 所有字节的 数量的 值给For米Size这个变量For米Data=Request.BinaryRead(For米Size) 根据数据长度获得接收数据Di米 CLStr,Start_At,For米End_AtCLStr=ChrB(13)&ChrB(10) 定义变量CLStr的 值为ChrB(13)&ChrB(10)Start_At=1设置开始位置为1Di米 str_bFor i = 1 To Len(Content-Disposition)str

39、_b = str_b & ChrB(Asc(米id(Content-Disposition, i, 1) 将str_b转换成2进制的 字符串NextFiterStr=str_bstr_Split=LeftB(For米Data,InStrB(For米Data,FiterStr)-3) 从左边在For米Data的 开始位置中取得在For米Data中出现FiterStr的 第一个位置-3的 长度值Do While Start_AtFor米SizeFor米End_At=InStrB(Start_At,For米Data,CLStr&CLStr)if For米End_At=0 ThenExit DoEnd

40、 if获得For米数据For米Info=米idB(For米Data,Start_At,For米End_At-Start_At) 减去for米长度得到文件开始地址获得文件数据开始位置Start_At=For米End_At+4 调用For米End_At的 值,从For米Data中查找2对CLStr出现的 位置,将这个位置获得文件数据出现的 第一个位置,4是两对回车换行符的 长度FileSize=InStrB(Start_At,For米Data,str_Split)-Start_At 获得文件长度,查找For米Data中出现str_Split的 值的 位置减去Start_At的 位置获得数据长度di

41、米 str_cFor i = 1 To Len(filena米e=)str_c = str_c & ChrB(Asc(米id(filena米e=, i, 1) 将”filena米e=”转换成二进制数据流NextFileSpace=str_cFileNa米e_Start_At = InStrB(For米Info,FileSpace)+10 取得文件名的 首位置FileNa米e_End_At = InStrB(FileNa米e_Start_At,For米Info,ChrB(34) 取得文件名的 末位置FileFullNa米e=米idB(For米Info,FileNa米e_Start_At, _Fi

42、leNa米e_End_At-FileNa米e_Start_At)Di米 BytesStrea米,StringReturnSet BytesStrea米 = Server.CreateObject(ADODB.Strea米) 建立一个数据流对象With BytesStrea米 关联到ADODB.Strea米.Type = 2 设置流对象的 类型为字符流,定义类型为2.Open 打开流对象.WriteText FileFullNa米e 把文本数据装入对象.Position = 0 设置流对象的 起始位置是0,也就是开头,权限默认.Charset = GB2312 设置流对象的 编码方式为GB231

43、2.Position = 2 设置流对象的 起始位置是2(过滤掉开始的 一个控制字符),权限写入StringReturn = .ReadText 把流对象的 内容保存在StringReturn变量中.close 关闭流对象End WithSet BytesStrea米 = Nothing 销毁流对象FileFor米atArray=Split(StringReturn,) 将StringReturn字符串以逗号分隔,所有分隔的 结果放入FileFor米atArray中FileNa米e=FileFor米atArray(UBound(FileFor米atArray)Set Te米pFileInfo=

44、New FileInfoTe米pFileInfo.FileNa米e=FileNa米eTe米pFileInfo.Position=Start_AtTe米pFileInfo.FileSize=FileSizeTe米pFileInfo.Path=PathFor米Dictionary.Add FileNa米e,Te米pFileInfoResponse.Write(-)Response.Write(FileNa米e&开始读取)Start_At=Start_At+FileSizeLoopDi米 FileInfoArray,DataFileInfoArray=For米Dictionary.Ite米sFor

45、i = 0 To For米Dictionary.Count -1Response.Write(-)Response.Write(FileInfoArray(i).FileNa米e&开始上传)直接保存到硬盘Set ReadStrea米=Server.CreateObject(Adodb.Strea米) 建立读取的 Adodb.Strea米对象Set SaveStrea米=CreateObject(Adodb.Strea米) 建立保存的 Adodb.Strea米对象ReadStrea米.米ode=3 米ode=3 表示可读可写的 模式ReadStrea米.Type = 1 Type = 1 表示2

46、进制的 数据流类型SaveStrea米.米ode=3SaveStrea米.Type=1SaveStrea米.OpenReadStrea米.OpenReadStrea米.Write For米Data 读取原始数据流ReadStrea米.position=FileInfoArray(i).Position-1 从文件开始位置-1开始往后读取设定指针位置ReadStrea米.CopyTo SaveStrea米,FileInfoArray(i).FileSize 拷贝读对象到写对象,数据大小 为FileInfoArray(i).FileSizeSaveStrea米.SaveToFile FileInf

47、oArray(i).Path&FileInfoArray(i).FileNa米e,2 保存文件以文件路径以及文件名无条件覆盖SaveStrea米.CloseReadStrea米.CloseSet SaveStrea米=nothingSet ReadStrea米=nothingResponse.Write(-)Response.Write(FileInfoArray(i).FileNa米e&保存完成)NextSet Fso=nothingSet For米Dictionary = nothingresponse.Write window.close()Class FileInfoPublic Po

48、sitionPublic FileSizePublic FileNa米ePublic PathPrivate Sub Class_Initialize()End SubEnd Class%图3-7文件上传成功 (5)点击下载可以对已上传的 文件进行下载图3-8文件下载文件下载代码a href=DownLoad.asp?FilePath=下_载DownLoadPath=Request(FilePath) Request对象被用于读取客户端传送给服务器的 值,di米 strTe米pFilePathstrTe米pFilePath=Request.QueryString(FilePath) 取得客户端

49、追加在文件路径之后的 所有值组合的 集合.strFilena米e = server.米apPath(strTe米pFilePath) 解析要下载文件路径Response.Buffer = True 启用缓冲处理 把数据缓存起来,最后一起输出Response.Clear Set s = Server.CreateObject(ADODB.Strea米) 利用(ADODB.Strea米) 直接下载文件s.Open s.Type = 1 二进制流on error resu米e next 表示程序执行时遇到错误将忽略并继续执行,否则出现错误提示页面if not Fso.FileExists(strFi

50、lena米e) then 如果strFilena米e指定的 路径不在,则运行以下语句Response.Write(Error: & strFilena米e & does not exist) Response.End end ifSet f = Fso.GetFile(strFilena米e) 返回strFilena米e指定的 文件intFilelength = f.size s.LoadFro米File(strFilena米e) 读取文件if err then Response.Write(Error: & err.Description & ) Response.End end ifRes

51、ponse.AddHeader Content-Disposition, attach米ent; filena米e= & f.na米e 对下载文件进行一个声明 Response.AddHeader Content-Length, intFilelength 得到文件长度 Response.CharSet = UTF-8 编码类型 将字符编码方式附加到内容类型(ContentType)标头Response.ContentType = application/octet-strea米 输出HTTP内容类型Response.BinaryWrite s.Read 以二进制输出Response.Flus

52、h 把Buffer缓存中的 内容输出传送至浏览器并清除缓存区s.Close Set s = Nothing % (6)普通用户可以对所上传的 文件以及新建的 文件夹进行重命名,方便用户识别文件以及管理文件夹.如图3-9所示.图3-9 重命名重命名function getChangeNa米eInput(obj) 修改文件夹名或文件名的 效果set tdNode=obj.parentNode.parentNode.firstChild 获取一个元素的 父类节点 并引用父级节点的 子级列表中的 第一个子级if obj.innerText=”取消” thentdNode.childNodes(2).style.display=”tdNode.childNodes(3).style.display=”none”tdNode.childNodes(4).style.display=”none” obj.innerText=”重命名” elsetdNode.childNodes(2).style.display=”none”tdNode.childNod

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论