jsp:

<%@ 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>Insert title here</title>
</head>
<body>

  <a href="download.do">点击下载</a>

</body>
</html>

struts.xml

<!-- 下载文件 -->
<action name="download" class="com.hdsx.gzgispf.controller.FileDownloadAction">
  <result name="success" type="stream">
  <param name="contentType">text/plain</param>
  <param name="inputName">inputStream</param>
  <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
  <param name="bufferSize">4096</param>
  </result>
</action>

com.hdsx.gzgispf.controller.FileDownloadAction  :

/**
* 处理带中文的文件名(可设置下载文件名)
* @return
*/
public String getDownloadFileName() {
fileName="struts2的下载文件.doc";
String downloadFileName = null;
try {
downloadFileName = fileName;
downloadFileName = URLEncoder.encode(downloadFileName,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downloadFileName;
}

/**
* 获取下载流
* @return
*/
public InputStream getInputStream () {

String context="";
String str="";
InputStream in=null;

//获取当前项目的路径    被下载的文件名为:111.doc
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/")+"111.doc";

try {
File someFile = new File(path );
FileInputStream fis = new FileInputStream(someFile);
InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
BufferedReader br = new BufferedReader(isr);

while((str=br.readLine())!=null){
context+=str+"\n";
}
in=new ByteArrayInputStream(context.getBytes());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return in ;

}

public String execute(){
return "success";
}

java struts2 的 文件下载的更多相关文章

  1. Java Struts2 POI创建Excel文件并实现文件下载

    Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...

  2. 关于Struts2的文件下载

    首先先来说下关于文件下载的原理: 服务端为客户端提供了一个下载服务,所以服务端需要一个输出流(把客户请求下载的文件输出),相对于服务端来说,客户端需要下载接收一个文件,所以它需要一个输入流(接收文件) ...

  3. 基于 Struts2 的文件下载

    介于上篇我们讲述了基于 Struts2 的单文件和多文件上传,这篇我们来聊一聊基于 Struts2 的文件下载. 1.导 jar 包 commons-io-2.0.1.jar struts2-core ...

  4. 小兵眼中的Java Struts2

        老魏终于可以回园子了,但是这次要慢慢的回来,不能一下子回来,这段时间除了要照顾刚出生的小女儿,还要做项目.说实在的老魏时间真是有限,不能照顾到园子的文章了,所以只能慢慢的回来写文章了.抱歉! ...

  5. java struts2入门学习实例--将客户端IP地址和访问方式输出到浏览器

    实例1:实现客户端IP地址和访问方式输出到浏览器. IpAction.java package com.amos.web.action; import javax.servlet.http.HttpS ...

  6. Struts2笔记--文件下载

    Struts2提供了stream结果类型,该结果类型是专门用于支持文件下载功能的.配置stream类型的结果需要指定以下4个属性. contentType:指定被下载文件的文件类型 inputName ...

  7. Java中都通用文件下载(ContentType、文件头、response、out四步骤)

    Java中都通用文件下载(ContentType.文件头.response.out四步骤) 新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian   我们就直接 ...

  8. java struts2入门学习---文件下载的二种方式

    一.关于文件下载: 文件下载的核心思想即是将文件从一个地方拷贝到另一个地方. 1.传统方式: 在Action中加入大量servlet api 操作.优点是好理解,缺点是耦合度高. 2.stream方式 ...

  9. java之struts2之文件下载

    1.在实际应用开发中,文件下载功能也非常常见. 2.最简单的文件下载方式是通过超链接来进行文件下载: <body> <a href="download/s.txt" ...

随机推荐

  1. 强制改变css样式优先级

    .list{ left:20px!important; } css !important作用是提高指定CSS样式规则的应用优先权. !important是CSS1就定义的语法,作用是提高指定样式规则的 ...

  2. postman发送json请求

    简介: postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get.post.put等各种请求. 发送json的具体步骤: 1.选择post请求方式,同时将heade ...

  3. 批量执行命令(SSH)

    for a in {1..6} ; do scp /etc/hosts enc-bigdata0$a:/etc/hosts ; done

  4. pta7-19打印学生选课清单(模拟)

    题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101314114875633664 题意:输入n个学生,k門课程, ...

  5. 第十章 优先级队列 (b2)完全二叉堆:插入与上滤

  6. Centos 7 下 Zabbix 3.4.x 服务搭建

    一.zabbix  介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让 ...

  7. LightOJ - 1027 Dangerous Maze 期望

    你在迷宫中;开始时在你面前看到n扇门.你可以选择你喜欢的任何门.所有门的选择门的概率是相等的. 如果您选择第i个门,它可以让您回到您在xi(xi小于0)分钟内开始的相同位置,也可以在xi(xi大于0) ...

  8. TOJ3448: 小学生的作业

    Python字符串的插入操作 传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3448 ...

  9. httpclient使用用例

    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...

  10. Mac下Chrome浏览器的手机模拟器,开启模拟定位

    项目接入百度地图,浏览器调试时需要获取定位信息. 1 打开设置->高级->内容设置->位置,将定位设置为“使用前先询问”,并清空禁止列表. 2 审查元素->Network-&g ...