`
xiumoo
  • 浏览: 1364 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2 文件流下载

 
阅读更多
download.html
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DOWNLOAD FILES PAGES</title>
</head>
<body>
<form method="post" action="/download/test-download!doDownload.shtml" theme="simple"">
	<input type="text" />
	<input type="submit" value="DOWNLOAD" />
	
</form>
<br/>
<form method="post" action="/download/test-download!doDownloadX.shtml" theme="simple"">
	<input type="text" />
	
	<input type="submit" value="DOWNLOAD" />
</form>
</body>
</html>
java code TestDownloadAction.java
package com.test.view.download;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletContext;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.opensymphony.xwork2.ActionSupport;

@Results( {

@Result(name = "download", type = "stream", params = { "contentType", "text/plain", "contentDisposition", "attachment;filename=\"${fileName}\"", "bufferSize", "2048" })

})

public class TestDownloadAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long	serialVersionUID	= 8195276150101182336L;

	private String				fileName;
	private String				data;
	private InputStream			inputStream;
	private OutputStream		outputStream;

	private static String		srcData		= "0序号,1乘客姓名,2乘客类型,3证件号,4证件类别\n\r0,测试乙,ADT,420104198710011611,NI\n\r1,测试甲,ADT,420104198710011611,NI";

	/** doXxxxx()********************************************************************** */
	public String doDownload() {
		this.setFileName ("downloadfile.csv");
		this.setData(srcData);
		
		return "download";
	}

	public void doDownloadX(){
		
		try {
			
			this.setFileName ("downloadfile.csv");
			this.setData(srcData);
			//确保IE识别本次为下载文件
			ServletActionContext.getResponse().setHeader("Content-Transfer-Encoding","binary");
			ServletActionContext.getResponse().setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); 
			
			ServletActionContext.getResponse().setContentType("text/plain;charset=iso8859-1");//UTF-8"); 
			
			ServletActionContext.getResponse().addHeader("Content-Disposition", "attachment; filename="+new String(fileName.getBytes("gb2312"),"iso8859-1")); //确保IE识别本次为下载文件			
			
			ServletActionContext.getResponse().setCharacterEncoding("gb2312");//("utf8");
			
			ServletActionContext.getResponse().getWriter().print(data);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		
		return ;
		
	}
	
	/** **getters and setters************************************************* */
	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	public String getData() {
		return data;
	}

	public void setData(String data) {

		this.data = data;
	}

	public InputStream getInputStream() {
		//return inputStream;
		//InputStream in=ServletActionContext.getServletContext().getResourceAsStream(realPath);
		//System.out.println(in);
		
		InputStream stream = new ByteArrayInputStream(data.getBytes());
		return stream;
		
		
	}

	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}

	public OutputStream getOutputStream() {
		return outputStream;
		
	}

	public void setOutputStream(OutputStream outputStream) {
		this.outputStream = outputStream;
	}
}
项目中用来测试文本下载,贴出求拍砖
分享到:
评论

相关推荐

    Struts2文件流方式导出下载excel、Txt、image图片

    通过上述步骤,我们就可以在Struts2框架下实现文件流方式的下载功能,无论是Excel、TXT还是图片,都能有效地直接返回给浏览器,让客户端进行下载。这种方式既节省了服务器资源,也提高了用户体验。在实际项目中,...

    struts2实现文件下载功能

    在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...

    struts2文件上传下载源代码

    总之,Struts2文件上传和下载是Web开发中必不可少的功能,涉及的技术点包括表单处理、文件流操作、服务器配置以及错误处理。通过理解和实践提供的源代码,开发者可以加深对Struts2框架的理解,提升其在实际项目中的...

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    struts2文件上传下载

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

    Struts的文件下载

    在Struts中实现文件下载是一项常见的功能,尤其在处理用户请求获取服务器上的静态或动态资源时。这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载...

    Struts2之struts2文件下载详解案例struts012

    在Struts2中处理文件下载是常见的需求,比如用户请求下载服务器上的文件,如PDF、图片或其他类型的文档。本案例"Struts2之struts012"将深入探讨如何在Struts2中实现文件下载的功能。 首先,我们需要创建一个Action...

    struts2框架下的文件上传

    本文将详细讲解Struts2框架下三种不同的文件上传方式:copy模式、字节流上传和字符流上传。 1. Copy模式文件上传: Copy模式是Struts2提供的一种简单易用的文件上传方式。它通过Struts2的`FileUploadInterceptor`...

    struts2 上传下载文件

    使用struts2框架进行文件的上传并限制文件的大小与类型,使用struts2框架实现文件下载

    Struts2文件上传与下载

    文件下载在Struts2中涉及`StreamResult`结果类型,用于将文件流发送到客户端。以下是一个基本的文件下载流程: 1. **创建Action**:定义一个Action,该Action将获取要下载的文件路径或者流,并设置响应的Content-...

    struts2文件上传和下载

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

    struts2文件下载

    在“struts2文件下载”这个主题中,我们主要关注的是如何使用Struts2来实现文件的下载功能。这篇博客文章可能探讨了在Struts2环境下处理文件下载的步骤和技术。 在Struts2中,`DownloadAction.java`很可能是一个...

    struts2文件上传下载(注解版)

    在本项目中,我们关注的是Struts2中的文件上传和下载功能,这些功能是Web开发中常见的需求,尤其在处理用户数据提交或提供资源下载时。下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. ...

    struts2文件上传与下载

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

    struts2文件上传下载实例

    对于初学者,阅读这些文档能更好地理解Struts2的用法以及文件上传下载的具体步骤。 总的来说,Struts2文件上传下载实例涵盖了Web开发中常见的两个重要功能。通过使用Maven管理依赖,编写Action类处理业务逻辑,并在...

    struts2上传和下载文件详细源码

    Struts2提供了两种方式实现文件下载:一种是通过流的方式,另一种是使用`Result`类型。流的方式通常涉及创建一个Action,该Action读取并流化要下载的文件内容。使用`&lt;s:url&gt;`和`&lt;a&gt;`标签生成下载链接,然后在浏览器...

    struts2文件下载的参数

    总结起来,“Struts2文件下载的参数”涉及到的主要知识点包括:Action类的使用、HTTP响应头的设置(尤其是`Content-Disposition`和`Content-Type`)、文件流的处理、Struts2的结果类型如`StreamResult`,以及安全...

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

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

Global site tag (gtag.js) - Google Analytics