您当前的位置:首页 > 计算机论文>软件开发论文

基于Web的文件上传管理系统的开发策略

2015-07-22 09:59 来源:学术参考网 作者:未知

 在电力系统的日常管理中,不可避免地要传递各种文件。传递文件一般有一个类似文件汇聚点,其他人的文件都向这一点汇聚。现在一般传递文件是通过Email方式,对于少量的文件这种方式是较为实用的。对于大量(>100)的文件传输来说,采用Email方式的接收端处理过程十分麻烦,下载,管理以及合并删除操作都十分费时费力。因此,开发一个简单实用的文件上传管理系统是十分必要的。
  1 系统结构
  系统的整体结构如图1所示,整体包含三个部分,有多个文件的上传者,一个文件汇总者,还有一个服务器用于存储文件。这三个部分的区别是逻辑上的,文件汇总者和服务器也可以合二为一。本文所开发的系统服务器所需要的资源很少,不会对文件汇总者的正常使用带来干扰。
  2 具体实现方式的选择
  正如前文所说,如果不采用Email方式,那么根据目前技术发展的现状,可采用的方式包括:1)Ftp方式;2)SVN方式;3)Web方式。
  下面进行逐一分析:
  2.1 Ftp方式
  这种方式采用Ftp客户端方式上传下载,远端需要一个Ftp 服务器。上传后的文件可采用操作系统自带的文件管理功能进行删除和归类以及归档。Windows XP系统上自带一个Ftp客户端,可以进行上传和下载。不幸的是,从Windows 7以后,系统不再自带Ftp客户端,无法上传文件了(但还可以通过浏览器ftp下载)。如果要使用这种方式,需要自行安装一个Ftp客户端,如filezilla, cuteftp等等来进行上载。此外,为了防止意外删除远端文件,还需要在ftp客户端分配用户名和密码,并在ftp服务器端进行一些权限设置。
  2.2 SVN方式
  SVN是subvesion network的简称,本质上是一种版本管理工具。利用它也可以完成文件的上传,下载,以及库中文件的管理。和Ftp类似,SVN也需要安装客户端,常用的客户端有tortoiseSVN等。同样地,为了防止意外删除远端文件,也需要在客户端分配用户名和密码,并在服务器端进行一些权限设置。
  2.3 Web方式
  这种方式客户端不需要安装任何软件,直接使用浏览器即可完成文件的上传下载。
  考虑到客户端使用的方便性和简单性,本文所开发的文件上传管理系统使用了Web方式,它在客户端不需要安装任何软件。使用浏览器完成所有的文件操作。为了更简化上传的方便性,也不需要给客户端分配用户名和密码,直接在服务器端利用不同的IP进行限制即可。
  服务器端的软件使用了Apache,它是目前占有率第一的Web服务器,可以方便地应用在Windows、Linux、Unix、Mac等各种计算机平台上。为了开发这个web文件上传系统的功能,我们还选择了PHP语言。PHP是一种面向对象的、完全跨平台的语言,解释型的语言。它开发周期短,学习简单,功能强大,尤其是在字符串和数据库处理方面。选择它也符合我们开发这套系统简洁高效的意图。
  3 系统介绍
  整个系统把人分为两种角色:上传者和管理者,对应可分为两大模块,上传模块和文件管理模块,各自的功能划分可参考表1。
  从表1中可以看出,上传模块的功能比较简单,主要就是上传文件和查看已经上传的文件,界面可参考图2。上传文件时只需要选择文件并上传即可,不需要用户名和密码登录系统,减少了中间环节,提高了效率。
  图3是文件管理模块的主要界面,这个界面主要列出了已经上传的文件的信息,包括文件名,文件大小,上传时间,上传者等等。还可以根据上传时间,文件名以及上传者来对文件排序。还有就是一些文件操作,如下载,合并和删除等等。前面的选择框可以使操作者同时操作多个文件,提高了效率。
  需要说明的是,这些模块都是在服务器端部署和运行,本质是都是一些PHP程序。无论是上传者还是管理者,他们只需要一个浏览器即可,不需要额外安装其他的任何软件。
  下面主要说一下实现中几个问题的处理过程,即上传者,管理员,合并操作以及不使用数据库的文件管理:
  3.1 上传者
  从之前的介绍中可以得知,客户端在上传文件的时候并没有输入用户名和密码,那么服务器是怎么判断上传者的呢?原因是在服务器端存在一个配置文件,这个文件存放着IP地址和用户名之间的关系,文件的内容如图4所示。
  从图4中可以看出,用户名和IP地址之间并不是一一对应的,一个用户名可以对应多个IP地址。这是因为考虑到电力系统的实际情况,虽然电力系统内部的IP地址是固定的,但客户端可能会更换IP上传文件,所以要允许一个用户对应多个IP地址。
  如果IP地址没有对应用户名,那么说明要么这不是一个合法的文件,要么就是图4中内容还没有更新。此时用户名处会直接显示IP地址,服务器端再更新图4的配置文件以后,此时会显示新的用户名。
  从后面的描述中可知,本系统的IP地址是存放在文件的附加流中,这样会让各个功能模块之间尽可能“正交”,减少互相传递和依靠的信息,也就减少了相互的干扰。
  在具体实现时,PHP有一种关联数组,本文使用了它来描述用户名与IP地址的对应关系。由于关联数组采用了Hash技术,查询会非常快。
  3.2 管理员
  从图4中可以看出,第一行为管理员的IP。当系统发现是管理员的IP登录时,自动调用图2所示的界面,否则调用图3所示的界面。这种利用IP而不是用户名/密码机制的方法大大简化了使用。因为电力系统内部均使用固定IP,这种配置方式是可行的。
  3.3 合并操作
  一般上传的文件都为office的文件,包括doc, ppt, xls等等。传统的方法是将其逐个下载然后处理。实际上,因为PHP文件可以调用OLE,可以直接对office格式的文件直接处理。在实际工作中,一般都是合并多个文件,即将多个office的同类文件合并成一个文件。这样可以减少中间步骤,提高效率。
  3.4 不使用额外配置文件的文件管理
  本文所实现的系统只有一个配置文件,就是图3所示的IP地址和人名的对应文件。在系统实际使用时,需要在服务器端记录每个文件是由哪个IP上传的,以及原始的文件名。传统的方式要么使用数据库,要么是用一个数据文件记录这个信息,注意直接使用IP+原始文件名不可取,因为原始文件有可能重名。不管使用哪一种方式,都有一个维护问题,否则就会产生对应关系不正确或者文件张冠李戴的情形。
  本文解决这个问题的方式是采用NTF S的数据流,NTFS格式的分区支持数据流的方式。任意一个文件都可以附带数据流,使用“文件名:流名”的方式来进行访问。删除文件时也会删除相应的数据流,如果将IP地址信息存储在数据流中,这样就从根本上保证了一致性。在本文中,使用“文件名:ip.txt”来存储IP地址信息;使用“文件名:name.txt”来存储原始文件名。为了避免重名,系统使用自己的方式来给文件命名。
  4 性能考虑和实际测试
  本文所开发的系统是一个实际使用的系统,简单、高效、稳定是追求的目标。首先,本系统没有采用用户名/密码机制,简化了系统的流程,提高了编程效率;其次,本系统也没有采用数据库机制,尽管php和mysql的配合是完美无缝的,只使用了一个简单的配置文件。这个文件在服务器一启动就读入内存中,使用关联数组进行查询,大大提高了效率;最后,本系统在管理员端的主界面其实是从文件系统中即时生成的。这样就保持了良好的一致性并可以利用系统的文件管理功能。
  目前,本系统已经完成,实际测试结果显示,系统运行正常,服务器端压力非常小。客户端反应速度很快,完全可以满足实际的使用。
  5 总结
  本文开发了一套基于Web的文件上传系统,此系统的设计理念是简洁高效。整个系统分为客户端部分和管理员部分。客户端主要完成文件的上传,管理员部分主要完成文件的下载,合并以及管理工作。经过测试,该系统的系统稳定性较好,响应速度快,可以很好地实现预期功能。
  参考文献:
  .北京:中国水利水电出版社,2002.
  [2] Larry Ullman.PHP基础教程[M].3版.北京:人民邮电出版社,2010.
  [3] NTFS Streams.Everything you need to

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页