step1:
页面定义如下
<form action="upload.do" enctype="multipart/form-data" method="post">
<input type="file" name="doc"/>
......................... 省略
</form>
step2
action 如下
public class UploadAction extends ActionSupport {
.....................................
private File doc;//doc与页面取一样的名字
public void setDoc(File doc) {
this.doc = doc;
}
//当然还可以使用以下的咚咚
/*
* public void setDocContentType(String docContentType) {
* this.docContentType = docContentType; }
*
*//**
*
* @author weip
* @time 0:23:24 2006-5-11
* @param docFileName
*/
/*
* public void setDocFileName(String docFileName) { this.docFileName =
* docFileName; }
*/
/**
*
*/
/*
* private String docContentType;
*
*//**
*
*/
/*
* private String docFileName;
*/
.............................................................
}
当程序进入到action当中时,你可以开始处理上面代码中的doc,此时文件已上传到服务器中的一个临时目录(同时被注入到action中就是你看到的 doc),此临时目录由webwork.properties指定,你必须将此文件拷贝到你需要的目录,否则action执行完毕,此文件会被删除,准确说是拦截器的后处理删除了临时文件,这一段结论的前提是你使用拦截器处理上传
step3
处理配置文件,配置拦截器
<action name="upload" class="com.mofile.baby.web.action.signup.UploadAction">
<result name="success" type="freemarker">/page/signup/uploadfile.htm</result>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="defaultWebStack"/>
</action>
step4
对于webwork.properties的一些处理
webwork in action上推荐使用webwork.multipart.parser=jakarta而不是默认的 pell,如果使用前者,不要忘了在你的lib中加入commons-fileupload.jar
需要注意的问题:
你在使用fileUpload传拦截器的时候应该避免使用execAndWait拦截器,否则很有可能会出现空指针,因为execAndWait拦截器会在另一个线程处理action,而原来的线程会删掉临时文件,所以当你在action中处理文件的时候很有可能文件已被删掉,虽然这并非一定会出现,但毕竟不安全
页面定义如下
<form action="upload.do" enctype="multipart/form-data" method="post">
<input type="file" name="doc"/>
......................... 省略
</form>
step2
action 如下
public class UploadAction extends ActionSupport {
.....................................
private File doc;//doc与页面取一样的名字
public void setDoc(File doc) {
this.doc = doc;
}
//当然还可以使用以下的咚咚
/*
* public void setDocContentType(String docContentType) {
* this.docContentType = docContentType; }
*
*//**
*
* @author weip
* @time 0:23:24 2006-5-11
* @param docFileName
*/
/*
* public void setDocFileName(String docFileName) { this.docFileName =
* docFileName; }
*/
/**
*
*/
/*
* private String docContentType;
*
*//**
*
*/
/*
* private String docFileName;
*/
.............................................................
}
当程序进入到action当中时,你可以开始处理上面代码中的doc,此时文件已上传到服务器中的一个临时目录(同时被注入到action中就是你看到的 doc),此临时目录由webwork.properties指定,你必须将此文件拷贝到你需要的目录,否则action执行完毕,此文件会被删除,准确说是拦截器的后处理删除了临时文件,这一段结论的前提是你使用拦截器处理上传
step3
处理配置文件,配置拦截器
<action name="upload" class="com.mofile.baby.web.action.signup.UploadAction">
<result name="success" type="freemarker">/page/signup/uploadfile.htm</result>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="defaultWebStack"/>
</action>
step4
对于webwork.properties的一些处理
webwork in action上推荐使用webwork.multipart.parser=jakarta而不是默认的 pell,如果使用前者,不要忘了在你的lib中加入commons-fileupload.jar
需要注意的问题:
你在使用fileUpload传拦截器的时候应该避免使用execAndWait拦截器,否则很有可能会出现空指针,因为execAndWait拦截器会在另一个线程处理action,而原来的线程会删掉临时文件,所以当你在action中处理文件的时候很有可能文件已被删掉,虽然这并非一定会出现,但毕竟不安全