赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

JSP/Servlet:EasyJWeb中文件上传的处理

发布时间:2008.01.25 07:35     来源:赛迪网    作者:easyjf

在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爱好者多多批评及建议。同进也非常欢迎您能加入到我们的国产开源队伍中。
          (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· JAVA中关于Oracle的索引 (01-24) · 浅谈MVC框架中View层的优雅设计及实例 (01-23)
· 程序人生--总结关于找工作的20条经验 (01-23) · JAVA基础:JavaScript面向对象的支持(2) (01-23)
· JAVA基础:JavaScript面向对象的支持(1) (01-23) · JSP/Servlet:< jsp-config>标签使用详解 (01-23)
· 中间件--RFID中间件的研究现状与展望 (01-23) · JSP/Servlet/JSF:session在何时被创建 (01-23)
· 进阶:Java Web中的入侵检测及简单实现 (01-23) · 基础--websphere下JMS的配置和和应用 (01-23)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务行业规范出台 电子商务发展目标与规划
· 中小企业网站存在盲目性 消费习惯需重点培养
· 天灾中信息化显力量 CIO如何应对新领导IT改革
· 河南网通数据中心工程 网御神州VPN解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统