`
Mov_webhobo
  • 浏览: 216248 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

WebWork之--使用fileUpload interceptor实现文件上传[基本配置+注意事项]

 
阅读更多
使用webwork的fileUpload interceptor,可以很方便的实现文件上传功能。以下为我在编写文件上传功能实现中的一些总结:
一:基本配置
开发环境:
服务器:tomcat 5.X
webwork版本:webwork 2.2.2
另外,需要把apache下的commons FileUpload包放到你的classpath中,我的是直接放置在${app}/WEB-INF/lib目录下
1:webwork.properties配置

 

  1. webwork.multipart.parser=jakarta#文件解析器类型,备选项包括pell、cos、jakarta
  2. webwork.multipart.saveDir=someDir #临时文件保存路径,最好设置否则会在服务器运行日志中看到很多INFO提醒
  3. webwork.multipart.maxSize=61000#上传文件的大小上限,单位:byte
2:xwork.xml
<action name="upload" class="uploadAction">
        <result name="success">ok.jsp</result>
        <result name="error">err.jsp</result>
        <interceptor-ref name="fileUpload">
        <param name="maximumSize">512000</param>
        <param  name="allowedTypes">image/pjpeg,image/gif,image/bmp,image/jpeg</param>
        </interceptor-ref>
</action>
 

3:upload.jsp

  1. <formname="postForm"method="post"enctype="multipart/form-data"action="upload.action">
  2. <inputtype="file"name="doc"/>
  3. </form>

4:uploadAction.java



public class Upload Action extends ActionSupport {
        private Filedoc;//上传保存的临时文件的引用,命名和upload.jsp中doc保持一致
        private StringdocContentType;//文件类型,该字段命名=文件引用名+"ContentType"
        private StringdocFileName;//文件名,文件名=文件引用名+FileName
        public String execute() {
                if (doc==null) {//当取道的文件引用为null时,表示文件不符合你设定的条件
                                returnERROR;
                }
                //以下为服务器文件传存、重命名等操作,临时文件不用管,fileUploadinterceptor会自己处理善后工作。。。
        }
        //setters方法省略
}

 

 

 

 

二:上传代码流程说明及注意事项

1)程序走到fileUploadinterceptor之前已经对文件在服务器端进行了保存
2)fileUploadinterceptor必须在paramsinterceptor之前被调用,否则Action无法获取到文件的引用
3)如果能在客户端进行文件名后缀和大小的判断,需要尽量做完善。尽管大小判断的js在ie下才起作用,并且js可以被轻松绕过,也需要这样做,因为http文件传输是很消耗服务器CPU的
4)当文件大小和类型不符合fileUploadinterceptor设置时,action仍旧会执行,此时得到的文件引用为null
5)可以通过getFieldErrors()方法获取fileUpload对于文件拦截操作出来结果,虽然提示信息不是很明确,而且是英文,但至少可以从中分析出是什么原因造成的不能上传

三:参考

WebWork2文档中文化计划 http://wiki.javascud.org/display/ww2cndoc/File+Upload+Interceptor

apache commons FileUpload组件网址 http://commons.apache.org/fileupload/

webwork fileUpload intercrptor英文介绍 http://docs.huihoo.com/webwork/2.2.6/File%20Upload%20Interceptor.html

 

分享到:
评论

相关推荐

    webwork+ibatis上传文件简单实例

    在本文中,我们将深入探讨如何使用WebWork和iBatis框架来实现文件上传的功能。WebWork是一个基于Action的MVC(Model-View-Controller)框架,而iBatis则是一个SQL映射框架,用于简化Java应用程序中的数据库操作。...

    webwork所需jar包

    7. **其他的依赖JAR包**:如log4j.jar(日志记录)、commons-lang.jar(通用语言工具)、commons-fileupload.jar(文件上传)等,这些是WebWork或其依赖库的辅助组件。 安装和使用WebWork所需JAR包的过程通常涉及...

    struts2上传文件所需的包

    在Struts2中,要实现文件上传功能,开发者需要配置Action类来接收文件,设置相应的文件字段,并使用Commons FileUpload进行解析。Struts2的拦截器(Interceptor)会处理请求,通过FileUpload解析文件内容,然后将...

    WebWork上传下载功能小记.pdf

    WebWork是一个基于Java的...以上就是WebWork框架中实现文件上传和下载的基本步骤,以及可能遇到的问题及其解决策略。在实际开发中,还需要注意文件安全、文件大小限制、多文件上传等问题,以确保应用的稳定性和安全性。

    struts2 关于多文件上传的使用

    ### Struts2 多文件上传实现详解 在Web开发中,文件上传是一项常见的功能需求,尤其是在需要用户批量上传文件的应用场景下。Struts2作为一款成熟的Java Web框架,提供了便捷的方式来处理多文件上传的需求。本文将...

    dom4j、common-fileupload、hibernate、jdom、log4j、proxool、spring、struts、webwork等工具、框架源码

    这些文件包含了多个经典Java开发工具和框架的源代码,对于深入理解它们的工作原理以及学习如何构建高效、可扩展的应用程序非常有帮助。以下是对每个工具和框架的详细说明: 1. **DOM4J**: DOM4J是一个灵活的Java ...

    struts2实现登陆注册+服务器校验+上传下载+简单的留言讨论区+分页显示

    在这个项目中,开发者使用Struts2实现了一系列功能,包括用户登录注册、服务器端数据验证、文件上传与下载以及一个简单的留言讨论区和分页显示。以下将对这些知识点进行详细阐述。 1. **Struts2框架**:Struts2是...

    Java运行Struts2必须带的包

    8. **Javad的Struts2基本配置.txt**:这个文件很可能是关于Struts2框架的基本配置指南,可能包含配置XML文件(如struts.xml或struts-default.xml)的示例,这些文件定义了Action、Interceptor和Result的配置。...

    spring+hibernate+struts2使用笔记

    以下将从Struts2的基本概念、MVC设计模式、Struts2在MVC中的实现、Struts2配置以及相关环境搭建等方面进行详细介绍。 ### 一、Struts2框架简介 #### 1. Struts2概述 Struts2是一个基于Java的开源Web应用框架,它是...

    Struts2的结构和编写过程笔记

    - `commons-fileupload-1.2.1.jar`: 文件上传支持。 4. **配置过滤器**:编辑`/Webroot/WEB-INF/web.xml`文件,添加Struts2的过滤器配置。 ```xml &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;filter-class&gt;org....

    Struts2.1学习笔记

    - **添加jar包**:需要引入文件上传相关的jar包,如`commons-fileupload`和`commons-io`。 - **设置form表单**:表单需要使用`enctype="multipart/form-data"`属性。 - **在Action中接收**:定义一个`File`类型的...

    企业级ssh架构教程

    - Struts2通过FileUpload拦截器支持文件上传功能。 - 示例:在Action中使用`File`类型的属性接收上传的文件。 #### 十一、Struts2的输入校验 - **用validate方法进行输入校验** - 在Action类中实现`validate`...

    struts2学习资料

    Struts2支持文件上传和下载功能,利用`commons-fileupload-1.2.1.jar`组件,可以方便地处理用户的文件提交操作。 5. **Struts2深入探索**: 进阶使用Struts2时,可以研究其插件机制、自定义拦截器、国际化支持...

    strut2开发必备jar包

    7. **Commons FileUpload**:commons-fileupload.jar - 支持上传文件的功能,使用户能够通过表单提交大文件。 8. **Commons IO**:commons-io.jar - 提供了一系列的I/O实用工具,用于处理文件操作、流处理等。 9. ...

    struts2学习笔记

    - **Commons-fileupload-1.2.1.jar**: 文件上传的支持库,用于处理HTTP请求中的文件上传。 **2. Eclipse配置** 对于Eclipse IDE而言,如果没有MyEclipse提供的Web支持,需要额外安装或配置commons-fileupload等...

    Struts2.0_lib

    6. **依赖的第三方库**:如commons-fileupload.jar用于处理文件上传,commons-lang3.jar提供Java语言工具类,还有其他的如xwork-core.jar,log4j.jar,javassist.jar等,它们为Struts2提供了额外的功能和支持。...

    笔记-Struts2不完美的知识点整理.docx

    - Commons FileUpload和Commons IO:文件上传组件及其依赖库 通过上述的介绍,我们可以了解到Struts2作为一个成熟的MVC框架,它在Java web开发中起到了重要的作用,通过合理的配置和使用,可以极大地提高开发效率和...

Global site tag (gtag.js) - Google Analytics