




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1313章章 文件操作实例文件操作实例在本章中主要讲解在在本章中主要讲解在Web运用程序中的文件上传技术,运用程序中的文件上传技术,在在Web运用程序中可以经过一个运用程序中可以经过一个apche组织开发的用于上传组织开发的用于上传的组件的组件Common-FileUpload来实现文件上传,运用这个组来实现文件上传,运用这个组件可以很容易的实现文件的上传功能。件可以很容易的实现文件的上传功能。在在Struts中曾经对这个组件进展了封装,并且运用上传中曾经对这个组件进展了封装,并且运用上传文件的过程更加透明化,此外,文件的过程更加透明化,此外,Struts封装了另一个实现上封装了另一个实现
2、上传文件的工程,名叫传文件的工程,名叫COS,该工程在,该工程在Struts 2中实现文件上中实现文件上传非常简单,只需求在传非常简单,只需求在Action中添加几个属性就可以了。中添加几个属性就可以了。13.1 Struts 213.1 Struts 2文件上传文件上传在在Struts 2中并没有提供有本人的上传文件的组件,但中并没有提供有本人的上传文件的组件,但是是Struts 2可以运用其他的上传文件的组件,例如前面提到可以运用其他的上传文件的组件,例如前面提到的的Commons-FileUpload、COS等,等,Struts 2只是为这些只是为这些上传文件的组件做了一致的接口,而且开
3、发人员在运用上传文件的组件做了一致的接口,而且开发人员在运用Struts 2时可以不用了解这些上传组件的详细细节就可以完时可以不用了解这些上传组件的详细细节就可以完成文件上传。成文件上传。13.1.1 Struts 213.1.1 Struts 2对上传文件的支持对上传文件的支持目前的目前的Struts 2支持有三种文件上传的组件,分别是支持有三种文件上传的组件,分别是Commons-FileUpload、cos和和pell,并且这三种文件上传,并且这三种文件上传组件都可以配置到组件都可以配置到Struts的配置文件的配置文件perties文件文件中。中。假设运用假设运用C
4、ommons-FileUpload来上传文件的话,必来上传文件的话,必需求引入需求引入commons-io-1.4.jar文件和文件和commons-fileupload-1.2.1.jar文件,于此一样,假设运用文件,于此一样,假设运用COS或者或者pell的话,也需求引入相关的的话,也需求引入相关的jar文件,才可以正常的进展文文件,才可以正常的进展文件的上传。件的上传。13.1.2 13.1.2 上传文件的上传文件的JSPJSP页页本节所给出的本节所给出的JSP文件上传页面采用了文件上传页面采用了Struts 2标签来标签来实现,文件名为实现,文件名为uploadstruts.jsp其中
5、其中UploadAction是处置上传文件恳求的是处置上传文件恳求的Action类的类的名字,该名字,该Action类所对应的类名也为类所对应的类名也为UploadAction。13.1.3 13.1.3 上传文件的上传文件的ActionAction类类这个例子运用了这个例子运用了Struts 2来实现,存在的一些上传过程来实现,存在的一些上传过程中所出现的信息,如上传文件名、上传文件类型、上传文件中所出现的信息,如上传文件名、上传文件类型、上传文件的内容。因此,需求在的内容。因此,需求在Action类中必需有和这些信息对应的类中必需有和这些信息对应的属性,才干在属性,才干在Action类中运
6、用这些信息。类中运用这些信息。UploadAction是一个是一个Action类,该类实现了上传单个类,该类实现了上传单个文件的功能。文件的功能。13.1.4 13.1.4 配置上传文件的配置上传文件的ActionAction类类配置配置UploadAction类的方法和配置普通的类的方法和配置普通的Action类的类的方法类似,只是需求运用方法类似,只是需求运用标签来设置上传文件的保标签来设置上传文件的保管途径。管途径。假设此时在文件上传时,效力器中曾经存在一个名为假设此时在文件上传时,效力器中曾经存在一个名为“abc.txt的文件,但是在上传时又将一个新文件起名为的文件,但是在上传时又将一
7、个新文件起名为“abc.txt,此时跳转到,此时跳转到reslt.jsp页面后,会提示该文件曾页面后,会提示该文件曾经存在。经存在。13.1.5 13.1.5 过滤上传文件的类型过滤上传文件的类型在一些在一些Web程序中,往往会限制某一类文件类型的上程序中,往往会限制某一类文件类型的上传,如只允许上传图片文件,或者只允许上传音乐文件等。传,如只允许上传图片文件,或者只允许上传音乐文件等。Struts 2中实现该功能也非常的简单,只需求在中实现该功能也非常的简单,只需求在UpLoadAction中中uploadContentType属性进展设置就可以属性进展设置就可以了,经过这个属性可以获得上传
8、文件的类型,例如上传文件了,经过这个属性可以获得上传文件的类型,例如上传文件的扩展名是的扩展名是JPEG,uploadContentType的实行就是的实行就是images/JEPG。有很多上传文件的程序会限制上传文件的类型,如只有很多上传文件的程序会限制上传文件的类型,如只允许上传图像文件,在允许上传图像文件,在Struts 2中要实现这个功能也非常简中要实现这个功能也非常简单。在单。在UploadAction类中,有一个类中,有一个uploadContentType属属性,经过这个属性可以获得上传文件的类型,如上传文件的性,经过这个属性可以获得上传文件的类型,如上传文件的扩展名是扩展名是j
9、pg,那么,那么uploadContentType属性的值是属性的值是image/jpeg。13.2 13.2 多个文件上传多个文件上传在实践的在实践的Web工程中,往往需求多个文件同时上传,工程中,往往需求多个文件同时上传,在前面曾经引见了单个文件的上传,运用在前面曾经引见了单个文件的上传,运用Struts 2只需求声只需求声明几个数组或是明几个数组或是List对象,就可以比较容易的将多个文件域对象,就可以比较容易的将多个文件域上传的数据进展封装,而程序员只需求关注处置逻辑就可以上传的数据进展封装,而程序员只需求关注处置逻辑就可以了。了。13.2.1 13.2.1 上传固定数目的文件上传固定
10、数目的文件假设是用数组来上传固定数目的文件,需求将假设是用数组来上传固定数目的文件,需求将Action中的一些属性修正为数组类型中的一些属性修正为数组类型在单击在单击“添加文件按钮后,会在下方多出一个文件阅添加文件按钮后,会在下方多出一个文件阅读框。读框。 13.2.2 13.2.2 上传恣意数目的文件上传恣意数目的文件除了可以运用数组来处置多个上传文件了,除了可以运用数组来处置多个上传文件了, 可以运用可以运用List对象来完成和数组同样的任务,如对象来完成和数组同样的任务,如UploadMoreAction类的代码中的数组类型的属性可以修正成类的代码中的数组类型的属性可以修正成List类型
11、。类型。13.3 Commo-FileUpload13.3 Commo-FileUploadCommons-FileUpload是是apache组织所开发的用于上组织所开发的用于上传的组件,经过这个组件可以很容易的完成单个或者多个文传的组件,经过这个组件可以很容易的完成单个或者多个文件的上传,在件的上传,在Struts 2中也可以运用中也可以运用Commons-FileUpload来进展文件的上传,本节中将运用来进展文件的上传,本节中将运用Commons-FileUpload引见上传一个或者多个文件。引见上传一个或者多个文件。13.3.1 Commons-FileUpload13.3.1 Co
12、mmons-FileUploadCommons-FileUpload组件是组件是apache的的Commons组组件包中的一个组件,读者可以经过如下的件包中的一个组件,读者可以经过如下的URL来下载来下载Commons-FileUpload的最新版本。的最新版本。/fileupload/下载下载Commons-FileUpload组件目前的最新版本,在组件目前的最新版本,在解开紧缩包后,需求在解开紧缩包后,需求在MyEclipse的的webdemo工程中援用工程中援用jar文件。文件。Commons-FileUpload组件还依赖一个组件还依赖一个Commo
13、ns-IO组件,该组件可以从如下的组件,该组件可以从如下的URL下载最新的下载最新的版本版本/io/ 下载下载Commons-IO组件组件目前的最新版本,在解开紧缩包后,需求在目前的最新版本,在解开紧缩包后,需求在MyEclipse的的webdemo工程中援用工程中援用jar文件。文件。13.3.2 13.3.2 上传单个文件上传单个文件运用运用Commons-FileUpload进展文件的上传非常简单,进展文件的上传非常简单,只需求在页面中提供一个标签只需求在页面中提供一个标签,并设置,并设置表单的表单的enctype属性值设为属性值设为“mult
14、ipart/form-data就可以了。就可以了。在本例如中,上传文件的页面时在本例如中,上传文件的页面时uploadservlet.jsp,在页,在页面中有一个输入上传文件的文本框和一个输入新文件名的文本面中有一个输入上传文件的文本框和一个输入新文件名的文本框。输入新文件名是为了给文件进展重命名,假设不输入新文框。输入新文件名是为了给文件进展重命名,假设不输入新文件名的话,默许是运用原来的文件名进展上传。件名的话,默许是运用原来的文件名进展上传。在在FileItem接口中还定义了几个方法来获得表单域中的接口中还定义了几个方法来获得表单域中的信息,这些方法如下。信息,这些方法如下。getFie
15、ldName方法:该方法用于获得表单域的方法:该方法用于获得表单域的name属性值。属性值。getString方法:该方法用于获得表单方法:该方法用于获得表单value属性值,其属性值,其中方法的参数用于设置中方法的参数用于设置value属性值的编码格式。属性值的编码格式。getName方法:该方法仅对文件域有效,用于前往上方法:该方法仅对文件域有效,用于前往上传文件的文件名。传文件的文件名。getContentType方法:该方法仅对文件域有效,用于方法:该方法仅对文件域有效,用于前往上传文件的文件类型。前往上传文件的文件类型。get方法:该方法仅对文件域有效,用于前往上传文件方法:该方法仅对文件域有效,用于前往上传文件的字节数组。的字节数组。getInputStream方法:该方法仅对文件域有效
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 羽绒制品市场细分与目标客户定位考核试卷
- 海洋生态保护与海洋环境保护与渔业资源环境保护与利用服务考核试卷
- 耐火材料施工技术与质量控制考核试卷
- 纤维板生产效率优化考核试卷
- 电子书与物联网技术的融合应用考核试卷
- 建筑设计院项目管理与运营
- 聚乙烯醇缩丙酮纤维在环保纸质材料的应用考核试卷
- 肉制品加工业的供需平衡与市场调节机制考核试卷
- 私募股权投资跨境投资与并购考核试卷
- 光缆的耐辐射性能研究考核试卷
- 《飞机结构与系统》课件-机翼结构
- 运动与身体教育智慧树知到期末考试答案章节答案2024年温州大学
- 电梯维保服务考核标准及评分办法
- (正式版)JBT 3300-2024 平衡重式叉车 整机试验方法
- 2024全新校医合作协议(重点条款版)
- 小脑梗死的护理查房
- 水产养殖公司合伙人股权分配协议
- 急救医疗资源整合优化研究
- 牛津译林7A-Unit3、4单元复习
- 专题四“挺膺担当”主题团课
- 国家义务教育质量监测初中美术试题
评论
0/150
提交评论