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>
分享到:
相关推荐
在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个功能。 一、文件上传 1. 配置依赖:首先,你需要在项目中添加Apache Commons ...
在Struts2中,文件的上传和下载是常见的功能需求,特别是在处理用户表单提交、数据交换或者提供资源下载服务时。这篇博客文章将探讨如何在Struts2框架下实现文件的上传和下载操作。 首先,我们需要了解文件上传的...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...
在Struts2中,文件的上传和下载是常见的功能需求,这通常涉及到前端表单的处理、后端Action类的编写以及与Commons FileUpload库的集成。 文件上传在Struts2中的实现主要依赖于Apache的Commons FileUpload组件,它...
3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
在Struts2中,文件上传和下载是常见的功能,对于用户交互和数据交换至关重要。这篇内容将深入讲解如何在Struts2中实现多文件的上传和下载。 1. **文件上传** 文件上传在Web应用中常常用于让用户提交各种类型的文件...
在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...
在实际项目中,文件上传和下载功能是必不可少的,本实例将详细讲解如何在Struts2框架下实现单个文件及多个文件的上传与下载。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相关的Action配置,以便处理文件...
综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。
Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了丰富的功能,包括文件的上传和下载。在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...
Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...
在Struts2中,文件的上传和下载是常见的功能需求,尤其在处理用户数据交互时。以下将详细讲解Struts2中的文件上传与下载机制。 ### 文件上传 1. **依赖库**:在进行文件上传之前,需要在项目中引入Struts2的...