struts2实现文件批量下载

struts2利用注解annotation实现文件下载 本文档对利用struts2 注解 annotation 实现文件下载作了简单介绍,并有代码为例,希望对学习struts2注解annotation的人有帮助,特别是需要动态传参方面。 立即下载

         大家都知道struts2提供了文件下载的功能,很方便很好用。废话不多说直接开始。


        首先我们先对struts.xml进行配置,struts2的result 类型设为stream,请看如下配置:

<span style="font-size:18px;">        <result name="toDownload" type="stream">
           <param name="bufferSize">2048</param>
            </result></span>

       在这要介绍一下几个字段属性:

       1、contentType,这个和文件上传的一样,就是要下载文件的格式;

        2、contentLength:这是要下载文件的文件大小;

        3、contentDisposition:这个有两个属性:1、inline;2、attachment contentDisposition默认是 inline(内联的), 比如说下载的文件是文本类型的,就直接在网页上打开,不能直接打开的才会打开下载框自己选择,要想弹出下载框就用附件的形式attachment

              4、bufferSize:这是下载缓冲区的大小。(默认1024)

         5、inputName:在定义输入流的名字。(默认inputStream)

    


    这些属性可以在配置文件中定义,也可以在我们的java文件中定义,在这里我用的是在java文件中给以getter方法定义

private String contentType;
	public String getContentType() {
		return contentType;
	}
	public long getContentLength() {
		return contentLength;
	}
	public String getContentDisposition() {
		return contentDisposition;
	}
	private long contentLength;
	private String contentDisposition;
	private InputStream inputStream;
	public InputStream getInputStream() {
		return inputStream;
	}
文件批量下载需要用到ZipOutputStream这个的用法大家可以到网上自行百度。

下面贴上action内代码:

public String download()throws Exception{
	
	String FilePath= ServletActionContext.getServletContext()//获取路径
	   .getRealPath("/images/");
		File zipFile=new File(ServletActionContext.getServletContext()//定义所要输入文件的zip文件
				   .getRealPath("images/testdownload/zipFile.zip"));
		ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(zipFile));
		 int temp = 0 ; 
	
		 FileInputStream input=null;
		for (int i = 0; i < fileName.length; i++) {
			File Files=new File(FilePath+"\\"+fileName[i]);
			 input=new FileInputStream(Files);
			zos.putNextEntry(new ZipEntry(Files.getName()+File.separator+fileName[i]));//将文件加入到Entry中
			 while((temp=input.read())!=-1){ // 读取内容  
                 zos.write(temp) ;    // 压缩输出  
             }
			
		}
		
    input.close();
	zos.close();
	 contentType="application/x-zip-compressed";//设定文件类型为.zip文件
	contentDisposition="attachment;filename=test.zip";//设定文件名为test.zip
		inputStream=new FileInputStream(zipFile); //定义流
		System.out.println(inputStream);
		contentLength=inputStream.available();
	
	return"toDownload";
 }

这里使用的是零时文件的形式,在方法调用的时候把文件夹清空是必要的,这里没有写。


Struts2实现压缩文件上传 Struts2实现压缩文件上传到Tomcat服务器该工程指定目录下,用JS实现上传控制。 立即下载

相关推荐

文件批量下载

简单的模拟迅雷批量下载功能,绕开迅雷的封杀。

struts2文件批量下载

在一次项目施中遇到客户提出对导出的单个文件进行分割为多个文件的需求,印象中未遇到过类似的文件导出功能。在网上搜索资料,研究struts2文件下载功能,未发现有支持此功能,但网上资料显示struts2支持批量文件下载功能,鉴于此思路实现代码如下。 配置文件: attachment;filena...

iteye_12200的博客 283

struts2注解必须包

struts2-convention-plugin-2.1.8.1.jar

asp.net实现下载

 //TransmitFile实现下载    protected void Button1_Click(object sender, EventArgs e)    {        /*         微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite         下载超过400mb的文件时导致Aspnet_wp.

1330

Struts2 文件下载(中文处理方法以及控制下载文件名称和扩展名)

Struts2的框架提供了现成的文件下载方式,大大简化了开发下载功能的便利性。网上的例子有很多,我把一些大家普遍比较关注的点,集中一下,给出一个整体方案。 一般我们照着书本或者网上的列子写出了一个Demo,都会存在几个疑问: 1.下载文件的文件名怎么搞?不搞的话浏览器默认名字是提交的action的名字,显然不好 2.文件名里面想搞中文,但是际上下载文件名出现了乱码或不显示中文怎么搞?...

weixin_30528371的博客 400

Struts2实现批量下载/打包ZIP下载文件

Struts2实现批量下载/打包ZIP下载文件 实现思路: 由于是基于Struts2实现的打包下载文件,我们先写一个TestAction类 public class TestAction extends BaseActionSupport { //定义一个InputStream流 private InputStream input

programmer_bobo的博客 2822

Struts2获取下载文件大小

        video/x-msvideo        targetFile                       attachment;filename="${contentDisposition}"                        2097152        ${contentLength} File f = new Fi

风达的专栏 3598

java struts上传_java struts2实现文件批量上传下载功能(实现国际化配置)

前几个代码都是用servlet实现的,这个是使用struts2框建实现。供大家参考!具体实现就不一一说明了,大致如下首先把struts2的框架搞定,可以到apache官网上下载,我是在这下载的http://down2.pc6.com/xy3/struts2.zip,解压——》apps(一些小demo)——》解压struts2-blank.war(主要使用里面的jar)——》复制/apps/stru...

weixin_28709649的博客 140

struts2实现批量上传和打包批量下载

struts2框架虽然年久失修,但是作为web后台开发人员,什么框架都得懂点不是,最近研究下载,而struts2框架搭建起来十分容易,就用它实现吧不得不说,有的框架文档写的十分详细,struts2的框架开发文档写的也不错,详细解释大偶在代码中web.xml配置struts2的过滤器,还是简单提一下 <filter> <filter-name>struts2</filter-nam

都市桃源 1212

struts2_文件上传和下载

作者通过一个文件批量上传和动态下载的WEB项目来讲解struts2的文件上传和下载是如何实现,以及注意事项。开门见山,直接开始。 目录结构: 文件上传: fileupload.jsp(上传页面): 1 <body> 2 <s:form action="upload" method="post" enctype="multipart/form-...

weixin_30312557的博客 135

strtus2 批量下载 中文问题、压缩文件等 ------ 讨论struts2工作流程

最近因为一个项目,需要做统一的下载,并且要支持批量下载..其中涉及到的知识点有:get请求中文处理,下载动态设置下载名,批量下载,动态打包,流处理,删除临时文件,使用迅雷下载后台发出两次次下载请求,以及struts2工作流程与原理等.. 下面是我自己做的一个例,主要实现遍历一个文件夹生成下载列表,用户可以单一下载,也可选择相关文件批量下载.....做的其中发现有很多疑惑的地方,请高手们指出....

编程资料大全 112

struts2——文件的下载以及在Action中获取请求参数的方式

前一天,上传了关于struts2文件的下载方式,今天正好补上关于struts2文件下载的方式。 1、开发环境 jdk1.7.0-51 myEcplise10 struts-2.3.32 2.web.xml配置<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xm

wangheng_2017的博客 2050

原来Content-Length指的是POST的内容

➜ ~/Downloads/ctf_wireshark python -c "print len('yo=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rl

公众号shadow sock7 4054

Struts2实现多个文件下载(改进版)

文件下载是一个很常见的功能,用struts2实现文件下载的步骤: jar包就是导入struts2的jar包到lib下 一.定义一个Action类,FileDownload.Java [java] view plain copy package com.struts2.filedownload;      import

相信你是一生的博客 862

struts2 批量下载(转载)

<br />设计思路:前台jsp页面form 传参传文件路径,多文件的话,将这些文件路径用分隔符拼接,后台分割这些文件路径,然后将这些文件路径下的文件打包,然后在下载。总体来说三步走,上传文件(路径),文件打包,下载。<br />思路出来了,代码如下仅供参考:<br />要下载

switch520的专栏 3746

struts2实现下载各种文件

1、struts.xml&lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"&

xqhys的博客 2417
上一篇: struts2+spring+hibernate+dwr3实现下拉框二级联动
下一篇: 前台js获取后台内容
lance小码匠
博客等级 码龄12年 27粉丝 82原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值