现在的位置: 首页 > 综合 > 正文

Struts2文件上传以及多个文件上传需要注意的地方!

2013年08月21日 ⁄ 综合 ⁄ 共 3417字 ⁄ 字号 评论关闭

总结一下Struts2的文件上传以及多个文件上传,方便自己,也方便他人.

 

Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。

 

需要commons-fileupload.jar

 

web.xml

 

 

struts.xml

 

struts.properties

此处 /tmp 为 临时存放图片目录

 

StorephotoAction.java

此处Action需要注意,由于struts2取消了FormBean的概念,因此原先写在FormBean中的属性 现在都要写在Action中,struts2中上传文件的成员变量是有命名规范的:

单个上传

private File photo; 

private String photoFileName;

private String photoContentType;

 

多个上传

private File[] photo; 

private String[] photoFileName;

private String[] photoContentType;

 setter/getter 略

 

大家可以看到 取得上传文件的名称不再是简单的file.getName(),而是拿photoFileName来取得上传文件的名称(包括后缀),命名规范是

文件对象名称=自定义                                             private File photo; 

文件名称      =文件对象名称+FileName                   private File photoFileName; 

文格式名称   =文件对象名称+photoContentType    private String[] photoContentType;

 

这块一定要切忌!!!何曾几时我总是拿不到上传文件的文件名。。

之后就是IO流的操作了这里忽略了。

 

多个文件上传的时候 除了可以用数组之外 您还有一种选择那就是LIST.

 

最后说一说 错误处理

 

把下属代码放在struts.xml 的<action></action>之间

 

用来设置最大上传文件是多少K 以及允许上传的类型

 

不要忘了写上input  这是出错后跳转的页面。里面加上<s:fielderror />,会显示出错的信息。 

抱歉!评论已关闭.