您的位置:首页 > 编程语言 > Java开发

手工处理 Struts2 框架上传的文件

2008-09-12 09:03 495 查看
手工处理 Struts2 框架上传的文件

在使用了 Struts2 框架的系统中,对于处理像下面这种表单上传文件时:

<form action="..." enctype="multipart/form-data">
文件:<input type="file" name="upload"><br>
描述:<input type="text" name="desc"></br>
<input type="submit" value="提交">
</form>
MultiPartRequestWrapper mpRequest = (MultiPartRequestWrapper)request;

File[] files = mpRequest.getFiles("upload");    //文件现在还在临时目录中
String[] fileNames = mpRequest.getFileNames("upload");

//然后就可以处理你的业务了
MultiPartRequestWrapper mpRequest = (MultiPartRequestWrapper)request;

File[] files = mpRequest.getFiles("upload");    //文件现在还在临时目录中
String[] fileNames = mpRequest.getFileNames("upload");

//然后就可以处理你的业务了

其他方法可以查看 MultiPartRequestWrapper API,MultiPartRequestWrapper 是继承自 org.apache.struts2.dispatcher.StrutsRequestWrapper 的。

最后,用了 Struts2 来上传文件,最好在 web.xml 中加上 ActionContextCleanUp 过滤器以避免一些未不预知的异常。

<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>

<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>

<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
网上有人说是要加 ActionContextCleanUp 过滤器的,ActionContextCleanUp 的代码注释是它易于同 SiteMesh 的整合,至于为何与文件上传扯上关系,我以后也会关注的。

对了还要在项目中引入 commons-fileupload-x.x.x.jar 和 commons-io-x.x.jar 包,其他没有什么特别的配置,默认即可。相信本文的实用性不强,不会有人用 jsp 来处理这些事情,参考价值可能还有一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: