`
bsatinfo123
  • 浏览: 32590 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2文件下载

阅读更多

struts2文件下载

action部分

package cn.com.hd.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import cn.com.hd.base.BaseAction;

/****
 * struts2文件下载
 * 
 * @author Administrator
 *
 */
public class Download extends BaseAction {
	private static final long serialVersionUID = 1L;
	private String filename;//下载文件名
	private String filepath;//下载路径

	
	public String getFilepath() {
		return filepath;
	}

	public void setFilepath(String filepath) {
		this.filepath = filepath;
	}

	public String getFilename() {
		return filename;
	}

	public void setFilename(String filename) {
		try {
			this.filename = new String(filename.getBytes("ISO8859-1"),"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
	
	
	/****
	 * 解决下载文件名中文乱码问题
	 * 此处这个方法里面的转码不可以在文件名即filename getter方法里面直接设置否则不会起任何作用
	 * @return
	 */
	public String getDownloadChineseFileName() {
		String downloadChineseFileName = filename;
		try {
			downloadChineseFileName = new String(
					downloadChineseFileName.getBytes(), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return downloadChineseFileName;
	}

	public InputStream getInputStream() {
		
		/** 只有是原文件在当前应用才可以使用,也可理解为当前项目 **/
//		return ServletActionContext.getServletContext().getResourceAsStream(
//				"/file/11.jpg");
		
		/** 绝对路径使用file诸如D:// **/
		File file = new File(filepath);
		InputStream is = null;
		try {
			is = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} 
		return is;
	}
	
	/****
	 * struts2默认执行此方法
	 */
	public String execute() throws Exception {
		return SUCCESS;
	}
}

 

 struts2配置文件

<package name="admin" extends="basePackage" namespace="/">
		
       <action name="download" class="cn.com.hd.test.Download" >
		<result type="stream" name="success">
			<param name="contentType">image/jpeg;charset=ISO8859-1</param>
			<param name="contentDisposition">
                                  attachment;filename="${downloadChineseFileName}"
                        </param>
			<param name="inputName">inputStream</param>
		</result>
	</action>
</package>

 

 contentType被下载文件文件的类型

 contentDisposition被下载文件的名字,其中attachment询问用户选择下载还是打开

 inputName被下载文件的入口输入流

 stream结果类型返回客户端一个输入流,inputName属性执行下载文件

 

 

jsp页面部分(此处的filepath和filename是自己手动写的待线上的时候需要与后台交互动态获取)

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%-- <%@include file="/common/header.jsp" %>
<%@ include file="/common/common.jsp" %> --%>
<!DOCTYPE html>
<html lang="zh">
<head>
<script type="text/javascript" src="./js/jquery.js"></script>
<script type="text/javascript" src="./js/jquery.pager.js"></script>
<script type="text/javascript" src="./js/global.js"></script>
<script type="text/javascript">
	/* struts2文件下载 */
	function download(){
		window.location.href = "download.action?filepath=D://11.jpg&filename=我是你下载的图片.jpg";
	}
</script>
<link href="./css/base.css" rel="stylesheet" type="text/css" />
<link href="./css/dialog.css" rel="stylesheet" type="text/css" />
</head>

	<body id="getpageheight">
		<input type="button" class="btn search-btn" onclick="download()" value="文件下载"/>
	</body>
</html>

 

分享到:
评论
2 楼 bsatinfo123 2018-11-30  
写的简单清楚,一目了然!!!
1 楼 bsatinfo123 2018-11-30  
  

相关推荐

    struts2实现文件下载功能

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

    struts2文件上传下载源代码

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

    struts2文件下载实例

    在这个“struts2文件下载实例”中,我们看到如何使用Struts2实现从数据库获取文件信息并在页面上展示,以及提供一个链接让用户能够下载这些文件。以下是对这个实例的详细解释: 1. **数据库操作**: - 首先,`Find...

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

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

    struts2文件下载源码

    在Struts2中,文件下载是常见的功能,尤其在处理用户请求获取服务器上的文件时。本示例提供了Struts2实现文件下载的源码,旨在帮助开发者快速理解和实现这一功能。 首先,我们需要理解Struts2文件下载的基本流程: ...

    struts2实现文件上传下载

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

    struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单

    struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单

    Struts2文件下载程序使用框架实现

    在Struts2中实现文件下载功能,可以为用户提供方便的数据传输服务,例如下载PDF、图片、文档等资源。本程序包含两种实现方式:动态下载和静态下载,下面将详细解释这两种方法。 1. 动态下载: 动态下载是通过...

    struts2_uploadify带进度条的多文件上传下载

    总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...

    Struts2+Jquery+Ajax

    "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...

    struts2中文学习文档

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

    Struts的文件下载

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

    struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2

    在Struts2中,处理文件上传和下载是常见的需求。为了实现这一功能,开发人员通常需要依赖两个关键的第三方库:Apache Commons FileUpload和Apache Commons IO。 Apache Commons FileUpload是一个专门用于处理HTTP...

    Struts2 三种下载方法 源码(有图有真相)

    在Struts2中处理文件下载是常见的需求,尤其是在处理用户请求获取服务器上的静态资源或者上传文件的下载时。本资源包提供的源码详细演示了三种不同的文件下载方法。 1. **超链接下载** 超链接下载是最直观且简单的...

    struts2文件下载点击取消服务器报错解决办法

    通过覆写StreamResult的方法 解决struts2文件下载点击取消服务器报错解

    struts2所有jar包程序文件

    在下载并解压"struts2所有jar包"后,开发者需要将lib目录下的所有jar文件添加到项目构建路径中,确保运行时可以找到所有依赖。对于Maven或Gradle用户,可以通过在pom.xml或build.gradle文件中指定相应的依赖项,实现...

Global site tag (gtag.js) - Google Analytics