EasyJWeb中文件上传的处理
来源:互联网 发布:网络洗照片 编辑:程序博客网 时间:2024/06/05 21:55
在struts中,引入org.apache.struts.upload包,对Apache Commons fileupload上传组件进行封装处理文件的上传,Formbean中定义FormFile接口来接收上传文件。
由于EasyJWeb定位于中小型项目应用,因此简化了上传的处理,直接使用Apache Commons fileupload来处理上传。由于框架核心引擎中对上传的内容已经自动进行了处理,因此,在action中,处理上传文件跟处理一般的文本字段没有什么区别!
废话不多说,直接进入正题:
1、上传表单
如开源的EasyJF BBS系统中的上传示例代码,html表单部分内容如下:
其中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爱好者多多批评及建议。同进也非常欢迎您能加入到我们的国产开源队伍中。
EasyJWeb官方网址:www.easyjf.com
EasyJF团队官方网址:www.easyjf.com
由于EasyJWeb定位于中小型项目应用,因此简化了上传的处理,直接使用Apache Commons fileupload来处理上传。由于框架核心引擎中对上传的内容已经自动进行了处理,因此,在action中,处理上传文件跟处理一般的文本字段没有什么区别!
废话不多说,直接进入正题:
1、上传表单
如开源的EasyJF BBS系统中的上传示例代码,html表单部分内容如下:
其中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爱好者多多批评及建议。同进也非常欢迎您能加入到我们的国产开源队伍中。
EasyJWeb官方网址:www.easyjf.com
EasyJF团队官方网址:www.easyjf.com
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- EasyJWeb中文件上传的处理
- jsp/servlet:easyjweb中文件上传的处理
- JSP/Servlet:EasyJWeb中文件上传的处理
- 关于Easy UI中文件上传处理进度条的实现
- 关于Easy UI中文件上传处理进度条的实现
- struts中文件的上传
- javaWeb中文件的上传
- SWING中文件的上传
- 我的台湾版图书
- 直面IT业界众多挑战 英特尔启动商务博锐
- Flash Lite作为S40和S60系列上的特性出现在技术规范中
- 【新媒体观察】AOL、CNN、USA today、CNet等旧势力卷土重来
- 中国全球化举世瞩目,人才成为核心竞争力
- EasyJWeb中文件上传的处理
- Sendmail从NetBSD源代码树中移去
- 工作后应该学会的事情
- 商务参考体系结构:企业对消费者(B2C电子商务解决实践) 第 1 章:业务需求和设计模型
- 话单采集测试(第一次更新修正用例部分,更新了程序Bug追加了一些功能)
- 【生存笔记】创业失败该怪谁?[0715Updated]
- 一个比较综合的Java语言基础试题
- 新时代网管的十二大主要职责(二)
- Ethereal使用入门(数据流分析工具)