首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2讲义十

2012-11-12 
Struts2讲义10Struts2文件上传功能开发技术要点本节代码详细说明文件上传功能的开发流程,介绍知识点如下:?

Struts2讲义10
Struts2文件上传功能开发
技术要点
本节代码详细说明文件上传功能的开发流程,介绍知识点如下:
?文件上传页面和显示上传成功页面代码内容。
?UploadAction类中实现上传功能方法和上传文件属性介绍。
?struts.xml中UploadAction配置,以及字符编码、文件临时存放路径配置。
?上传后所处路径和最终上传成功后效果展示。
演示代码
上传文件页面,这里笔者定义的是多个文件上传。


上传文件成功后结果页面

UploadAction类代码

定义了一个名为“allowedTypes”的参数,其中在<param></param>之间的是文件类型,也可以用“,”间隔,表示允许上传多个文件类型。这里允许上传文件类型为txt、xml格式的文件。如果读者不知道各个文件类型的定义,可在自己的JBoss安装目录中的server\default\deploy\jboss-web.deployer\conf\下的web.xml文件中找到(搜索<mime-mapping>即可)。
注意:如果显示配置Struts2自己的缺省拦截器一定要写在“defaultStack”前,否则“fileUpload”拦截器不会执行拦截。因为Struts2中如果某个拦截器执行拦截时候发现自己已经执行过,第二个乃至之后同名的拦截器都不会执行。这里因为“defaultStack”拦截器栈中包含了“fileUpload”拦截器,而“fileUpload”拦截器已经执行拦截了,则不会再执行拦截。如果把“defaultStack”拦截器栈放在“fileUpload”拦截器前配置,则只执行“defaultStack”拦截器栈中的“fileUpload”拦截器,这里是没有定义“allowedTypes”的,Struts2缺省默认的是支持所有文件类型。因此它会支持所有文件类型的文件上传。因此再设定“allowedTypes”就没有任何意义了。
1 楼 caiceclb 2009-03-31   struts不是很懂,请问如果配置 指定临时上传文件存放路径 为目标文件夹(就是最终文件存放的地方),那后面的文件写入操作是不是就不用写了? 2 楼 黑暗浪子 2009-03-31   caiceclb 写道
struts不是很懂,请问如果配置 指定临时上传文件存放路径 为目标文件夹(就是最终文件存放的地方),那后面的文件写入操作是不是就不用写了?

首先很高兴你能对我的文章有自己的想法和见解,让我们一起互相学习,一起提高。
第二我试着回答你的问题,如果有新的疑问和想法,欢迎在这里互相讨论。
对于你的回复,我先告诉你一点,临时存放路径里存放的文件是后缀名为tmp的文件,在文件上传成功后,这些tmp文件是会被remove的。因此将最终文件路径和临时存放路径设置为相同不影响你上传文件。反正这些tmp文件也会被删除。
还有就是文件写入操作问题,实际上文件上传就是把你上传的文件copy到服务器所在的上传文件存放路径里。如果你不写文件写入操作的代码,那么系统是用什么操作实现copy这个动作的呢?
因此两个路径设置为相同没问题。但是不写后面的文件写入操作code就有问题了。因为你在服务器所在的上传文件路径里就不会有上传的文件了,后面进行下载操作时候你下载什么文件呢?
3 楼 yuyee 2009-03-31   STRUTS2.0的确提供了很多帮助,不过不利于程序员的成长,哈哈 4 楼 bcw104 2009-05-22   yuyee 写道STRUTS2.0的确提供了很多帮助,不过不利于程序员的成长,哈哈
难道你不在项目中使用struts2是因为它不利于成长?或者说在struts2身上应该能学到很多东西吧 5 楼 SpringJava 2009-10-16   yuyee 写道STRUTS2.0的确提供了很多帮助,不过不利于程序员的成长,哈哈


如果你对STRUTS2.0入门,STRUTS2.0是对程序员的帮助是非常非常的大的。而且很简单好用! 6 楼 zl584521 2009-10-29   我的下载过程会报错~~
研究中~~ 7 楼 smalt_sky 2009-11-03   其实写得不错。但是就缺少了个input的返回值。

热点排行