首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>Java基础>正文

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

http://www.oklinux.cn  2008-01-25  来源: 赛迪网 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爱好者多多批评及建议。同进也非常欢迎您能加入到我们的国产开源队伍中。


上一篇:Oracle数据库各种启动方式的详细介绍   下一篇:轻松掌握优化Oracle网络设置的解决方案


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·J2SE综合--怎样取得class文件的路径
·Java语言深入--java调用C/C 的过程
·Java 理论和实践:用软引用阻止内存泄漏
·Java语言中Timer类的简洁用法
·Java入门:java中不同类型的转换和提升
·初始化引发的"StackOverflowError" 异常
·为什么很多Java开发人员对JCP感觉失望
·接口与抽象类的深层理解
·JAVA学习入门 对初次接触者 相当的有用
·关于表现层框架Struts/Tapestry/JSF比较
·基础:使用String.split时要注意的问题
·进阶-Vector、ArrayList和List的异同
·J2SE综合--浅谈 String 类的相关应用
·EJB 最佳实践--工业强度的 JNDI 优化
·Java入门:java语言中创建和使用日期
·Java怎样调用外部应用程序
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Java入门:状态对象--数据库的替代者
·Java语言怎样调用外部应用程序
·Java语言深入--关于Java语言的内存泄漏
·JSP/Servlet/JSF:Servlet/JSP配置详解
·进阶-怎样使用AJAX进行WEB应用程序开发
·基础:J2ME程序开发之新手入门九大要点
·Java入门--Java语言接口与继承的本质
·JAVA进阶--如何提升JSP应用程序的效率
·对Java中四种XML解析技术之不完全测试
·编写高级 JScript应用代码
·JSP/Servlet/JSF--对标签库的深入研究
·Java入门--关于字符串分割的两种方法
  阅读排行
·使用AJAX技术实现网页无闪自动局部刷新
·快速教您Apache Tomcat SSL的配置
·Java语言深入--java调用C/C 的过程
·用JSP JavaScript打造二级级联下拉菜单
·JAVA进阶--线程运行栈信息的获取讲解
·J2SE综合--JAVA实现把汉字转化成拼音
·使用WEBWORK实现文件上传方法实例详解
·一个非常有趣的使用spring框架AOP例子
·关于java中相对路径,绝对路径问题总结
·高级:lucene全文检索应用示例及代码简
·详细讲解Struts构架中action的跳转大全
·在Weblogic上配置JMS服务的方法
·Hibernate配置文件中的映射元素详解
·对Java中四种XML解析技术之不完全测试
·基于AJAX的动态树型结构的设计与实现
网摘收藏: