码迷,mamicode.com
首页 > Web开发 > 详细

SSH框架 FileUpLoad文件上传

时间:2015-03-30 18:21:15      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

文件上传是很常用的一个功能,今天说一下struts2的文件上传,使用的是fileupload组件。

首先要有两个jar包,如下图所示:技术分享

如果没有这两个jar包的话上传肯定不会成功的,控制台会报错的。

 

然后再页面上要有一个上传文件的标签,如下图所示:

技术分享

不要在意后面的onchange事件,这个是做的一个图片上传,为了能够点击图片直接弹出文件选择框而写的一个函数,顺便提一下吧,具体函数和做法如下图所示:

技术分享

下面是函数:

技术分享

这个。。。下面言归正传,继续说文件上传,页面上的上传文件的标签最重要的就是type="file"和这个标签的name属性,因为在action中要用到这个name属性的值。

在action中要给出如下三个文件的属性值,并且提供set/get方法。

技术分享

在这可以看到,标签的name属性值使用到了,并且后面的imaFileName和imaContentType都必须以文件名字开头,不然是获取不到值的。

然后就到了具体上传的部分了,action方法如下:

 

技术分享

大体的方法是这样的,其中

技术分享

是设置你要保存文件的路径,放在WEB-INF下是为了保证文件的安全性,当然你也可以直接放在项目根目录下,也可以自己选择文件夹,下面的三行代码是判断你的项目中

是否存在你要存文件的文件夹,如果不存在的话就新建一个。

技术分享

这一部分就是利用I/O流读取和写入文件了,没什么可说的,记得最后要关闭输入输出流即可。

到这一个文件上传基本完成了,但是有人会问,如果我只上传Excel文件或者word文件怎么办,再或者我只要求上传小于10M的文件怎么办?

这个问题你可以在上传的action中的方法中判断,也可以在struts2的配置文件中规定,下面上一下在struts2文件中规定的方法。

技术分享

有人看到这个会说,这不是struts2的拦截器吗?对了,就是拦截器,拦截器里面设置param参数来实现上传,allowedTypes是允许上传的类型,

maximumSize是允许上传的文件大小。当然你也可以把你文件的上传路径也给放在这里。

除了拦截器,你还应该在struts2的配置文件中写入这么两行代码:

技术分享

这个注释都写好了,我就不再啰嗦了。

这时候你就可以去上传文件了,但是上传的时候小手一抖,本来选图片的选了个word文件,然后也没看就上传了,然后页面上就除了一句英文,仔细一看,哦,原来是文件类型不对啊,

幸亏哥们儿英语过了六级,但是,要是英语没过六级怎么办?下面来说说英语没过六级。。。。。不是,是出现这种情况怎么办?

你需要这么两个文件就搞定了。首先在struts2配置文件中加入这么两行代码:

技术分享

就是需要加入国际化的资源文件,value就是你的资源文件的名称,然后再资源文件中加入下面的代码即可

 

技术分享

 

技术分享

这样就可以了哦,当然你struts2配置文件中资源文件的value属性的值要和你资源文件的名字匹配。

恩,这个就是个人的一个学习记录,大牛们就可以略过了,有什么错误的欢迎大家指正。

 

SSH框架 FileUpLoad文件上传

标签:

原文地址:http://www.cnblogs.com/liaidai/p/4378351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!