你的位置:首页 > Java教程

[Java教程]SSH框架 FileUpLoad文件上传


文件上传是很常用的一个功能,今天说一下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文件中规定的方法。

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

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

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

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

 

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

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