jsp/servlet:easyjweb中文件上传的处理

在struts中,引入org.apache.struts.upload包,对apache commons fileupload上传组件进行封装处理文件的上传,formbean中定义formfile接口来接收上传文件。

  由于easyjweb定位于中小型项目应用,因此简化了上传的处理,直接使用apache commons fileupload来处理上传。由于框架核心引擎中对上传的内容已经自动进行了处理,因此,在action中,处理上传文件跟处理一般的文本字段没有什么区别!

  废话不多说,直接进入正题:
  
1、上传表单
  如开源的easyjf bbs系统中的上传示例代码,html表单部分内容如下:
  < form name="editform" enctype="multipart/form-data" method="post" action="/bbsupload.ejf" style="height:0px">
 < input type="file" name="file"  style="width:100%">
 < input type="hidden" name="easyjwebcommand" value="upload">
 < input type="hidden" name="parentobj">
 < input type="hidden" name="types">
 附件说明:< input type="text" name="intro" size=20>

< /form>

  其中enctype="multipart/form-data"必须的,method="post"也必须。
   
    这个表单是一个混合表单,有type=file的文件上传框,也有type=text或hidden的普通文本框。

2、接收单个上传文件的java代码

  下面我们看看文件上传处理模块bbsupload中的java代码.

   com.easyjf.bbs.action.uploadaction.java
  
  import org.apache.commons.fileupload.fileitem;

  public class uploadaction implements iwebaction {
   public page execute(webform form, module module) throws exception {
     fileitem file=(fileitem)form.get("file");//文件对象
         string intro=(string)form.get("intro");//文本对象
     if(file!=null)
       {
        //得到上传文件,对上传文件进行处理,这里省略代码n行
       }
   }
}


3、接收处理多个文件上传的java代码
  
 com.easyjf.bbs.action.uploadaction.java
 
iterator it = form.getfileelement().keyset().iterator();
while(it.hasnext()) {
string fieldname = (string) it.next();//表单字段名
fileitem file = (fileitem) form.get(fieldname);//文件对象
if(file!=null)
{
//得到上传文件,对上传文件进行处理,这里省略代码n行

}

}

4、关于org.apache.commons.fileupload.fileitem 
 
  这是apache的开源上传组件apache commons-fileupload中的一个类,easyjweb核心引擎使用他来处理上传文件的。
   通过fileitem类我们可以得到上传文件的大小、路径、文件名等信息,也可以通过filteitem类的write方法把上传文件保存到服务器中。如论坛中的代码:


    file.write(new file(filepath + filename));
   //示例file.write(new file("c://test/up.txt"));


  详细请看apache官方网站.地址:http://jakarta.apache.org/commons/fileupload/

5、上传中的注意事项

  需要对上传文件进行过滤,以防黑客上传如.jsp的木马文件到服务器上。若上传来的文件不希望用户直接通过url访问,则可考虑保存到web应用程序web-inf目录下,或者web应用程序以外的目录。


easyjweb简介

  easyjweb是基于java技术,应用于web应用程序快速开发的mvc框架,框架设计构思来源于国内众多项目实践,充分借签了当前主要流行(主流)的开源web框架(struts、jsf、tapestry 、webwork),吸取了其优点及精华,利用velocity作为模板页面引擎,是一个实现了页面及代码完全分离的mvc开发框架,是一个旨在于为中小型web应用系统提供快速开发实践的简易web框架。

  easyjf开源团队于2006年初才开始建设,因此当前整个开发团队组建以及所发布的作品,都显得极不成熟。easyjweb仍然处于测试阶段,请广大的java爱好者多多批评及建议。同进也非常欢迎您能加入到我们的国产开源队伍中。
          (责任编辑:包春林)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值