在web开发中,经常要用到附件上传的功能.
webwork提供了极为简便的办法:
fileUploadStack
在xwork.xml中配置fileUploadStack:
[code]
<interceptors>
<interceptor-stack name="fileUploadStack">
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>[/code]
对某个action引入该stack
[code]
<action name="fileUpload" class="com.opensymphony.webwork.example.fileUpload.FileUploadAction">
<interceptor-ref name="fileUploadStack"/>
<result name="success">success.jsp</result>
<result name="input">input.jsp</result>
</action>[/code]
在html中只要有<input type="file" names="myfile">
在action中定义private File myfile;并提供getter和setter则可以取得该上传文件.
如果需要同时上传多个文件,在html中定义多个同名的input,
在action中定义private File[] myfile;并提供getter和setter则可以取得上传文件数组.
上传多个文件时,需要注意,要采用jakarta,不要采用pell,否则只能取得第一个文件.
采用jakarta的时候,File的filename是不能用的,取到的是upload_xxx.tmp.
在action中定义private String[] myfileFileName;可以取得真实的文件名.
原文:http://www.sinzy.net/Blog/Read.asp?ID=56&BID=6916
webwork提供了极为简便的办法:
fileUploadStack
在xwork.xml中配置fileUploadStack:
[code]
<interceptors>
<interceptor-stack name="fileUploadStack">
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>[/code]
对某个action引入该stack
[code]
<action name="fileUpload" class="com.opensymphony.webwork.example.fileUpload.FileUploadAction">
<interceptor-ref name="fileUploadStack"/>
<result name="success">success.jsp</result>
<result name="input">input.jsp</result>
</action>[/code]
在html中只要有<input type="file" names="myfile">
在action中定义private File myfile;并提供getter和setter则可以取得该上传文件.
如果需要同时上传多个文件,在html中定义多个同名的input,
在action中定义private File[] myfile;并提供getter和setter则可以取得上传文件数组.
上传多个文件时,需要注意,要采用jakarta,不要采用pell,否则只能取得第一个文件.
采用jakarta的时候,File的filename是不能用的,取到的是upload_xxx.tmp.
在action中定义private String[] myfileFileName;可以取得真实的文件名.
原文:http://www.sinzy.net/Blog/Read.asp?ID=56&BID=6916