struts2.2上传文件问题

MultiPartRequestWrapper mpRequest = (MultiPartRequestWrapper)ServletActionContext.getRequest();
     String[] names = mpRequest.getFileNames("upload");
     File[] file_s=mpRequest.getFiles("upload");

 

stuts2.2和struts2.0上传文件有点区别,2.0如果有几个file就是几个不管你选择文件没,但是2.2之后就是你选的文件它才认为你有,你没有选就认为你没有

 

如果还想用2.0的功能的话,只要用2.0的代码覆盖掉2.2的便可。。。

路径是在:struts-core包里的org.apache.struts2.dispatcher.multipart下

 

 

以下是引用网上的:http://hi.baidu.com/gujianting2010/blog/item/3b24438bea62ece1f11f3621.html

在struts2.2.1文件上传,对上传的文件进行保存,这要获取上传文件的名称,而网上讨论的很多,却没有一个确切明确的方案,经过自己的分析查看,文件上传操作是在FilterDispatch拦截器进行拦截之后,在Action的execute方法执行之前调用的一个方法,
这个方法是一整套拦截器链的一部分,在Struts2中并没有自己的文件上传组件,
也就是说Struts2本身并没有文件上传功能,但是Struts2可以使用其它的文件上传组件来完成文件上传功能。
Struts2目前支持三种文件上传组件:Jakarta、cos、pell。这三种上传组件都可在Strut.properties文件中配置使用。
除了对文件上传组件进行配置外,Struts2还可以对文件上传的临时文件保存的位置以及上传文件的总大小进行配置。struts2.2.1文件上传的请求被包了,直接获取文件名是由“UUID号”+“.tmp”,无法获取真实的上传文件的原名。这就要就要对 request 作个转型,才能调用到相应的方法获取 
 MultiPartRequestWrapper mpRequest = (MultiPartRequestWrapper)ServletActionContext.getRequest();;
File[] files = mpRequest.getFiles("upload"); //文件现在还在临时目录中
String[] fileNames = mpRequest.getFileNames("upload");-----"upload"是页面中上传文件file的name的值;

 

你可能感兴趣的:(struts2.2)