在emp中如何实现文件上传

本文介绍了EMP框架下的文件上传功能实现方法,包括配置文件empServletContext.xml中的关键属性,如临时文件路径、最大文件大小等,并详细说明了如何在JSP页面设置文件上传表单及在业务逻辑中处理上传文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目开发过程中,经常会有人问道emp怎么来实现文件上传,这里我做一个简单的介绍:

emp文件上传的 设计思想是:所有的文件上传都由平台进行处理,平台将上传的文件统一放在一个临时的文件夹下,然后再由开发人员根据具体的 业务需求对上传的文件进行处理,例如:导入数据库、把文件转移到具体 业务所需要的文件夹下或者是处理结束后删除文件等等。

根据这个设计思路,emp的文件上传功能是独立于业务逻辑和表现逻辑的,是属于Servlet层次的功能模块,其配置的地方是在公共表现逻辑中(即empServletContext.xml文件),配置的例子如下:
    <empServletContext.xml>
        ......
        <sessionManager class="com.ecc.emp.session. EMPSessionManager"/>
        <localeResolver class="com.ecc.emp.web.servlet.CookieLocaleResolver"/>
        <multiPartResolver class="com.ecc.emp.web.multipart.implement.EMPMultipartResolver"/>
        ......
    </empServletContext.xml>
其中有几个主要的属性:
    tempFileRootPath:文件临时存在的位置
    maxFileSize:允许上传的文件大小
    seperateViaDate:文件是否按照日期存放
    dateDirFormat:按照日期存放的情况下,日期的格式

上面配置的是文件上传的公共配置,对于具体需要进行文件上传的地方,需要做的处理有:
1、JSP页面中,需要设置表单的类型是文件上传类型(即enctype="multipart/form-data")以及一个类型为file的输入框。
        <form name="form" enctype="multipart/form-data" action="fileUpLoad.do" method=" POST">
                <input name="myFileInputName" type="file"/>
        </form>
2、表现构件则与普通的表现构件一样的配置即可
3、业务逻辑中,则需要在输入中添加类型为file的输入框的名称(即上面例子中的myFileInputName)。然后在业务逻辑中针对myFileInputName这一数据定义进行处理。该数据定义的值是一个com.ecc.emp.web.multipart.implement.EMPMultipartFile对象,该对象中的tempFileName属性就是临时文件的“完整路径+文件名”,根据该属性的值就可以对临时文件进行相关的业务处理
除了可以使用emp的文件上传实现类(EMPMultipartResolver)之后,还可以配置成使用apache的文件上传功能的实现类(com.ecc.emp.web.multipart.commons.CommonsMultipartResolver),其属性的配置与EMPMultipartResolver是一样的。
    <empServletContext.xml>
        ......      
        <sessionManager class="com.ecc.emp.session.EMPSessionManager"/>
        <localeResolver class="com.ecc.emp.web.servlet.CookieLocaleResolver"/>
        <multiPartResolver class="com.ecc.emp.web.multipart.commons.CommonsMultipartResolver"/>
        ......
    </empServletContext.xml>
另外,与使用emp的文件上传的实现类不同的是:在业务逻辑中取得的myInputFileName数据定义的值是一个com.ecc.emp.web.multipart.commons.CommonsMultipartFile对象,在该对象中可以取到org.apache.commons.fileupload.FileItem对象,然后根据FileItem对象就可以对临时文件进行相关的业务处理。


由于这种方式用到了apache的文件上传功能,相关的介绍可以查看apache的官网:
http://commons.apache.org/fileupload/
或者由某位达人可以介绍一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值