`
jiasongmao
  • 浏览: 671157 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

struts2中的文件上传和下载

阅读更多
struts2中的文件上传和下载:

1.首先导入commons-fileupload-1.2.1.jar和commons-io-1.4.jar两个jar包

2.其次JSP页面中的文件上传控件所在的form必须设置属性enctype="multipart/form-data"

3.再次,struts2中文件上传将底层高度封装了。在使用时只需要在ACTION中添加三个字段(其中

List<File> files为必填项),并为其设置get  set  属性。

4.接下来你要做的只是将files中的文件对象保存到磁盘即可。

这样就完成了文件上传。如果需要控制上传文件,则需要在struts.xml文件中配置struts2内置的文件上

传拦截器即可。
<interceptor-ref name="fileUpload">
            <param name="maximumSize">2MB</param>
            <param name="allowedTypes">text/html,image/jpeg</param>
        </interceptor-ref>

<interceptor-ref name="basicStack"/>
需要注意的是<interceptor-ref name="basicStack"/>不能省,因为如果只配置fileUpload拦截器,则其

他的拦截器将失效。

而文件下载可能相对比较简单,具体操作如下:

1.在ACTION中建立一个返回类型为InputStream的方法。如:
  public InputStream getTargetFile() throws Exception
  {
      return ServletActionContext.getServletContext().getResourceAsStream(String 文件的路

径);
  }
处理原理为:所有的下载文件都是将一个二进制的流写入到HttpResponse中去。在Action类中定义一个

InputSream类型的二进制流,在Result返回时返回给用户。

2.在struts.xml中配置ACTION信息
<action name="downloadFile" class="com.jpleasure.ImageUploadAction">
            <result name="success" type="stream">
              <param name="contentType">image/pjpeg</param>
              <param name="inputName">imageInputStream</param>
              <param name="contentDisposition">attachment;filename="image.jpg"</param>
              <param name="bufferSize">1024</param>
            </result>
</action>
ContentType表示下载文件的类型。
InputName表示Action类中用来下载文件的字段的名字。
ContentDisposition用来控制文件下载的一些信息,包括是否打开另存对话框,下载文件名等。
BufferSize表示文件下载时使用的缓冲区的大小。



struts.xml配置示例:
<action name="save" class="com.globalzt.struts2.action.StudentAction" method="save">
<result name="success">/studentSuccess.jsp</result>
<result name="error">/studentManagement.jsp</result>
<result name="input">/studentManagement.jsp</result>
<!-- 配置struts2中写好的拦截器,所以name名称不能随便写 -->
<interceptor-ref name="fileUpload">
<param name="allowedTypes">image/bmp,image/gif,image/jpeg,image/png</param>
<param name="maximumSize">409600</param>
</interceptor-ref>
<!-- 这句话不能省,否则将忽略其他的拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
<action name="download" class="com.globalzt.struts2.action.DownloadAction" method="download">
            <!-- 这里可以添加需要向ACTION中传递的值,方式为注入:name属性的名称自己定义 -->
            <!-- <param name="inputPath">\files\Winter.jpg</param> -->
            <result name="success" type="stream">
            <!-- 接下来的参数为设置HTTP头信息,在配置的时候要注意name的名称是定死的,不能擅自更改。参见:struts2-core-2.0.11下的org.apache.struts2.dispatcher.StreamResult类 -->
                <param name="inputName">inputStream</param>
                <!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性对应action类中的方法 getDownloadFileName() -->
                <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                <param name="bufferSize">4096</param>
            </result>
        </action>
分享到:
评论
1 楼 asdf93945 2009-10-18  
下载文件为什么不动态指定? 而是硬编码到配置文件中?

相关推荐

    struts2中的文件上传和下载示例

    在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个功能。 一、文件上传 1. 配置依赖:首先,你需要在项目中添加Apache Commons ...

    struts2 文件的上传和下载

    在Struts2中,文件的上传和下载是常见的功能需求,特别是在处理用户表单提交、数据交换或者提供资源下载服务时。这篇博客文章将探讨如何在Struts2框架下实现文件的上传和下载操作。 首先,我们需要了解文件上传的...

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2文件上传和下载

    在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...

    Struts2文件的上传和下载

    在Struts2中,文件的上传和下载是常见的功能需求,这通常涉及到前端表单的处理、后端Action类的编写以及与Commons FileUpload库的集成。 文件上传在Struts2中的实现主要依赖于Apache的Commons FileUpload组件,它...

    struts2实现多文件上传下载

    3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...

    struts实现的文件上传下载功能

    在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...

    struts2文件上传下载

    在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...

    struts2多文件上传和下载

    在Struts2中,文件上传和下载是常见的功能,对于用户交互和数据交换至关重要。这篇内容将深入讲解如何在Struts2中实现多文件的上传和下载。 1. **文件上传** 文件上传在Web应用中常常用于让用户提交各种类型的文件...

    基于Struts2的文件上传下载功能的完整源代码。

    在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...

    Struts2多文件上传下载实例

    在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...

    Struts2文件上传下载和表单重复提交问题

    综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。

    Struts2实现文件的上传下载

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了丰富的功能,包括文件的上传和下载。在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与...

    Struts2多个文件上传

    在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...

    struts1和struts2分别实现文件上传下载功能

    Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...

    struts2文件的上传和下载

    在Struts2中,文件的上传和下载是常见的功能需求,尤其在处理用户数据交互时。以下将详细讲解Struts2中的文件上传与下载机制。 ### 文件上传 1. **依赖库**:在进行文件上传之前,需要在项目中引入Struts2的...

Global site tag (gtag.js) - Google Analytics