strust2 文件上传

上传:

首先我们要明白strust2 的文件上传是通过FileUploadInterceptor来实现的。

其次,在我们jsp页面的form标签中有method提交方式需要时post,然后需要设置enctype属性,form表单提交的默认是一些字符串,所以我们要上传文件呢,必须要修改,改成:enctype="multipart/from-data",设置好这个属性后呢,我们文件上传就是以二进制流方式上传,这样我们就能上传文件了。前台代码如下:


接下来呢,我们要新建一个Action处理类

其中我们需要一些属性

file:前台上传的文件,可自由命名,但必须与前台name属性值相同

fileContentType:上传的文件类型,命名规则:file(等同于上一个属性)+ContentType

fileFileName:上传的文件名,命名规则:file(等同于第一个属性)+FileName

sqvePath:上传的路径,即保存的位置(这个参数可以通过struts.xml文件的action节点下的param参数传递过来,这里我们直接写死)

有了上面这些参数后,生成他们的get,set方法,其中要注意的是,我们要对路径的get方法进行处理,因为我们保存的路径是要绝对路径的,而我们给的路径可能不是绝对路径,所以我们必须对路径进行处理。即:ServletActionContext.getServletContext().getRealPath(savePath);通过这个方法呢我们就能拿到绝对路径,其中savePath是我们的路径参数。代码如下:

当我们的必要属性生成以后,接下来就是写我们的执行方法了:代码如下:


当完成上面这些步骤后呢,我们的文件上传功能基本就完成了,只要配置下struts.xml就行了,代码如下:


其中值得提起的是拦截器中的param节点,

其中name为alloweTypes的,是指定文件允许上传的类型(不指定则不需要改节点,表示允许任何类型的文件上传),如上指定的是一些图片类型的文件,则如果不是图片类型的文件上传是不允许的。

name为maximumSize的,是规定文件上传大小的,如果不设置改节点则默认大小为2M,即最大只能上传2M大小的文件。如上设置,则文件最大上传大小为3M,

这样呢我们就用struts2实现了文件的上传,是不是很简单呢?快动手试试吧!




猜你喜欢

转载自blog.csdn.net/qq_36380675/article/details/53141669
今日推荐