struts中含有支持文件上传功能的包org.apache.struts.upload。可以创建一个包含FormFile类型的属性的ActionForm。如:
package
cn.rolia.struts.upload;
import
javax.servlet.http.HttpServletRequest;
import
org.apache.struts.action.ActionErrors;
import
org.apache.struts.action.ActionForm;
import
org.apache.struts.action.ActionMapping;
import
org.apache.struts.upload.FormFile;
public
class
UploadForm
extends
ActionForm {
private
FormFile
theFile
;
public
ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
return
null
;
}
public
void
reset(ActionMapping mapping, HttpServletRequest request) {
}
public
FormFile getTheFile() {
return
theFile
;
}
public
void
setTheFile(FormFile theFile) {
this
.
theFile
= theFile;
}
}
然后在对应
JSP
文件中使用
html:file
标记。要上传文件,
html:form
标记的
enctype
属性必须是
”
multipart/form-data”
且方法必须是POST
。如:
<
body
>
文件上传实例
<
HR
>
<
center
>
<
html:form
action
=
"/upload"
method
=
"POST"
enctype
=
"multipart/form-data"
>
select the file you want to upload.
<
br
/>
<
html:file
property
=
"theFile"
></
html:file
><
br
/>
<
html:submit
></
html:submit
><
html:reset
></
html:reset
>
</
html:form
>
</
center
>
</
body
>
在控制层处理保存上传文件
Action
里,调用
FormFile
的
getInputStream
方法获得上传文件的数据流然后进行保存。