webwork文件上传

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中处理文件的时候很有可能文件已被删掉,虽然这并非一定会出现,但毕竟不安全
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值