基于Struts 2框架的文件上传下载功能的设计与实现

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:nbwdwby
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对上传下载功能在办公系统,管理系统等应用系统中的广泛性,基于Struts 2框架,对文件的上传下载功能进行设计,给出相应的设计方案,并在办公系统中加以实现和验证,使得客户能够将本地文件上传到服务器端并对其进行下载。
  关键字:Struts 2框架; 上传; 下载
  【分类号】:TP311.10
  1 引言
  随着信息技术的发展,基于B/S(浏览器/服务器)架构的web系统的应用越来越广泛,而文件的上传和下载的功能是这些系统中常用的功能模块之一。例如,在办公系统中的收发邮件的功能模块,有进行收发附件的操作;在管理信息系统中,有存储和显示注册人员的照片等功能。本文将基于Struts 2的开发框架,通过使用Struts提供的Commons FileUpload,将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中,从而实现以本地文件方式的操作浏览器上传的文件和下载本地的文件。
  2 文件上传功能的设计实现
  上传文件首先是将文件上传到服务器,有两种方式实现。第一种是将上载的内容以文件的形式存储到服务器的硬盘;第二种是将文件直接上传到数据库服务器的数据库中。本文采取第一种文件上传的实现方式。
  在上传功能的设计过程中,需要对前后台页面进行相应的设置和编码,通过前后台的相互交互和配合,达到上传的目的。
  2.1 创建文件上传页面
  在前台页面中,规定了上传文件所使用的HTML表单的格式。
  from表单中的enctype属性的设置,确保匿名文件上传的正确编码。Struts标签中的标志将文件上传控件绑定到Action的upload属性。
  2.2 创建后台代码模块
  2.2.1 创建后台代码
  后台程序应与前台程序相互对应,后台程序代码主要从JavaBean和Action两个方面创建,从而共同实现文件的上传功能。在上传方法中,设置两个File类的参数src,target,分别代表上传的源文件和目标文件。引入java包中的java.io.BufferedInputStream和java,io.BufferedOutputStream两个包,将源文件和目标文件以输入输出流的形式创建,并保存到指定的缓冲区中(缓冲区的大小可自行定义)进行读写操作。在文件上传时,先将源文件以输入流的形式进行读操作,保存到缓冲区中,再以输出流的形式将缓冲区的内容进行写操作,成为目标文件,从而实现了从源文件到目标文件的上传。
  这里定义缓冲区的大小为16*1024,也就是16个字节,同时通过byte[] buffer=new byte[buffer_size];这行代码,定义了一个长度为16的定长字节数组buffer,用以读写的操作。
  2.3.2 调用上传方法
  创建好上传方法之后,对其进行调用。首先,为上传的文件设置大小,如果超过9M,则提示上传失败,由后台将失败的提示信息传到前台页面中。如果文件小于9M,将源文件上传到指定的路径中去。
  由File file=new File(dir+"/upLoad/"+uploadFileName);这行代码可以看出,这里将源文件上传到指定的文件夹名为upload的路径下,便于查询。
  2.4 对上传的Action文件进行配置
  上传功能的Action代码创建完之后,要将其在struts.xml里面进行相应的配置。在设置文件大小时,struts.multipart.maxSize掌控整个项目所上传文件的最大的内存,超过这个内存,后台会报错。因此fileUpload拦截器的maxmumSize属性必须小于struts.multipart.maxSize的值,而struts.multipart.maxSize默认大小是2M,所以对于struts.multipart.maxSize可以采用如下配置方法:
  
  在struts.xml中,对fileUpLoad的action请求的配置代码如下:
  
  /mailWrite.action
  /mailWrite.action
  /mailWrite.action
  <!-- 设置成默认的拦截器,否则影响上传功能 -->
  
  

  这里需要注意,拦截器的设置应当指明为struts自带的默认拦截器,若采用自定义的拦截器,会影响上传功能。
  3 文件下载功能的设计实现
  文件上传功能实现以后,对文件进行下载。文件下载的原理就是将上传的文件从服务器的指定路径以输入流(InputStream)的形式读取出来,引用了java包中的java.io.FileInputStream,下载功能的实现方法和步骤与上传功能略有不同,重点在于对struts.xml文件的配置。   3.1 配置web.xml文件
  Web.xml文件主要是负责整个项目的部署,包括struts 2自带的过滤器和spring监听器部署,欢迎页面的部署,session会话时间的设置等。在此项目中,session的会话时间设置为30分钟,在标签中配置;采用struts 2自带的过滤器,在标签中进行配置;而spring监听器的部署则是在标签中进行配置。
  3.2 配置struts.xml文件
  当result的type属性为stream类型时,struts 2会自动根据配置好的参数下载文件,其中主要使用的参数有:
  contentType 指定下载文件的文件类型 —— application/octet-stream 表示无限制。
  inputName 流对象名 —— 比如这里写downloadFile,它就会自动去找Action中的getInputStream方法。
  contentDisposition 使用经过转码的文件名作为下载文件名 —— 默认格式是attachment;filename="${fileName}",将调用该Action中的getFileName方法。
  bufferSize 下载文件的缓冲大小。
  3.3 创建后台Action的代码模块
  结合struts.xml中文件下载功能模块的配置,创建Action,用于实现文件的下载功能,命名为DownLoadAction.java,由于struts.xml的配置文件中,设置参数inputName流对象名为getDownloadFile,因此在Action的代码模块中定义的方法名即为getDownloadFile方法。下载方法中主要有两个步骤:一是将文件从服务器下载到指定路径中,二是为下载好的文件命名。这里需要注意,上传和下载的编码格式必须一致,否则会出现乱码的现象。
  基于struts 2框架,可以实现文件的上传和下载功能,通过使用标签,将其与Action的属性绑定,再结合java中输入输出机制,实现了文件的上传功能;在文件下载功能模块中,着重对struts 2框架中的配置文件struts.xml进行配置,同时对文件下载的Action功能模块进行设计,实现了文件的下载功能。
  3.4 小结
  本文通过Struts2框架的上传下载特性,通过对前台页面的配置以及对Action功能模块的代码编写,实现了文件的上传和下载功能,并应用与自动办公化系统当中,使上传下载功能得到了实际应用。
  参考文献
  [1] 叶倩文.Java Web开发中的上传与下载技术[J].电脑知识与技术.2012,08(12)
  [2] 汪键峰.Struts结构中的Java Web开发中实现文件上传与下载[J].计算机系统应用 2006(9)
  [3] 陈亚辉,缪勇.Struts 2+Spring+Hibernate框架技术与项目实践.清华大学出版社.2012.5
  [4] 孙卫琴.精通Struts:基于MVC的Java Web设计与开发.电子工业出版社.2004.11
其他文献
摘要:我国作为世界最大的煤炭生产大国,在煤矿开采为国家工业发展做出贡献的同时也存在很多问题。为了解决煤炭资源量的下降、煤矿开采对环境的污染、开采技术的安全性和高效性等方面的问题,对综合机械化固体充填采煤技术展开应用研究,系统阐述该技术在系统布置、技术装备等关键应用,对于进一步优化开采技术,实现采矿高效工作目标有着重要的现实意义。  关键字:综合机械化;固体填充;采煤技术;煤矿;应用;研究方向  中
期刊
[摘要]GPS(Global Positioning System)全球定位系统尤其是实时动态(RTK)定位技术在公路测量中蕴含着巨大的技术潜力,本文概述了GPS的系统组成与其测量技术的原理,主要分析了实时GPS测量技术的特点及其在公路测量中的应用。  关键词:GPS定位;公路工程;测量;应用  【分类号】:P228.4;U412.2  GPS全球定位系统(Global Positioning S
期刊
摘要:未来在实施水利工程之前,要进行大量观测调查与分析论证,特别要加强负面影响的调查、分析,对负面影响进行实事求是的评价,吸取多学科的先进经验,运用生态学、环境科学等学科的理论、方法和技术,如环境承载力等理念,寻找人类生存发展与环境改变最适宜的平衡点,提出切实可行的减缓措施,减少或避免对环境引起的负面影响,实现人与自然和谐相处。  关键词:水利工程 环境 负面影响、  中图分类号:X820.3  
期刊
摘要:随着科学技术的进步,汽车检测设备在智能化、自动化、精密化及综合化方面都有新的发展,应用新技术开拓新的检测领域,研制新的检测设备。随着电子计算机技术的发展,出现了汽车检测诊断、控制自动化、数据采集自动化及检测结果直接打印等功能的现代综合性能检测技术和设备。本文结合笔者的工作实践,对DCOM技术在汽车检测线分布系统的应用进行了探讨。  关键词:组件;汽车检测线;DCOM  中图分类号:V448.
期刊
摘要:污水回用是缓解水资源紧张的重要手段,且中水用途广泛。本文介绍了生活污水回用的处理方法,主要介绍了A/O、MBR、生物膜法等生化法或组合工艺的优点及其应用。  关键词:污水回用 生化法 MBR 组合工艺  中图分类号:[R123.3]  污水回用的途径一般分为地下水补给、居民生活杂用水、生产回用水、城市公共用水和农业用水等各领域,发展趋势由过去的单纯治理转化为再生回用,并在实际应用中取得了良好
期刊
摘要:石油工业生产中,油气集输流程在投入使用后,由于受到内部介质的压力及腐蚀,流程材质等影响,使之在使用过程中产生裂纹、穿孔等破损现象。需要用气焊、电焊等方法进行动火施工。本文从空间受限,动火连头和焊接变形方面阐述了含易燃介质的管线动火的安全技术措施。阐述了采取措施和注意事项。  关键词:空间受限 动火街头 焊接变形 防止措施  【分类号】:F426.22  在工业发展的当今社会,石油工业的发展越
期刊
摘要:单片机技术已经在各个领域为人们所普通使用。无论是通讯、交通、智能控制,还是办公自动化、电子领域、电气设备等几乎都可以  看到单片机的存在。本文从单片机的技术应用角度出发,提出了一种用80CI%系列单片机实现数字调速的系统控制方案,并在实际中验证了本方案的可行性,同时对80CI%单片机的一些关健技术作了深入研究,以期开发更高性能的单片机系统。  关键词:单片机 数字调速 控制系统 脉冲宽度调制
期刊
摘要:钢板桩是带有锁口的一种型钢,钢板桩围堰是利用钢板桩的锁口相互咬合,形成一个密封性好的隔水带。具有强度高,容易打入坚硬土层,防水性能好,可在深水中施工,并可多次重复使用等优点,在水工建筑物、桥梁等工程中得到了广泛的应用。本文以钢板桩围堰在高州水库灌区续建与节水改造工程石骨总干渠中的应用为例,介绍其施工工艺、质量控制技术要点。  关键词:钢板桩 围堰 灌区 应用  【分类号】:U445.556 
期刊
摘要:乘人装置在斜巷的应用,解决了井下上下乘车人员安全和人员上下方便等问题。本装置具有启动前后的声响信号联系,设备电气互锁越位乘车保护,索道全线任意点停车,电机失压、短路、过载保护以及索道的卡绳(即欠速)保护和飞车(即过速)保护等较为全面的保护功能。  主题词:乘人装置 技术改造 应用  中图分类号:U472.7  一、概述  斜巷架空乘人装置(以下简称索道)在我矿海域安装并投入运行使用,整部索道
期刊
【摘 要】煤矿安全生产关系着人们的人身安全,关系着煤矿行业的健康稳定发展。 本文主要结合实际工作经验,对综合信息化监控系统在煤矿安全生产中的应用进行详细的分析和探讨,并提出了科学的煤矿安全生产管理措施。  【关键词】综合信息化监控系统;煤矿;安全生产;应用  中图分类号:TE28  煤炭行业作为一种高危行业,具有易燃易爆、高温高压、有毒有害等特点,其安全生产系统是非常复杂的。 随着我国信息技术的快
期刊