/* 文件下载的先决条件
* 1. 在xml配置文件中必须配置一个type="stream"的result, result中不需要填写任何内容 * 2. 在Action中编写一个接收文件名的String, 这个变量名必须和JSP页面的参数名完全吻合
* 3. 可以在result中配置一个名为"contentDisposition"的参数, 值是attachment;fileName=${fileName}
* * attachment表示当前下载的内容让浏览器以下载的方式打开
* * ${fileName}表示从对应的Action中获取要下载的文件名, Action中必须提供对应参数的getter方法
*/

1.代码示例:

--->Action类

public class FileDownLoadAction extends ActionSupport {
private static final long serialVersionUID = 1L;
//文件传过来的名字
private String fileName; public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
} public String execute() throws Exception {
System.out.println("FileDownLoadAction.execute()");
if (fileName == null) {
System.out.println("文件不存在");
}
System.out.println(fileName);
return SUCCESS;
}
//下载文件的主要业务处理
public FileInputStream getInputStream() throws Exception {
//获取到"/FileTransport"的路径
String path = ServletActionContext.getServletContext().getRealPath("/FileTransport");
//获取到"/FileTransport"路径下和接受到的文件名一样
File file = new File(path, fileName);
//返回获取到的文件
return new FileInputStream(file);
}
}

--->filedownload.jsp

<body>
            提交过去的值为文件名相同
<a href="${pageContext.request.contextPath}/filedownload?fileName=index.txt">文件下载</a>
</body>

----->配置struts.xml文件

<action name="filedownload"  class="com.gxxy.filetransport.fileupload.FileDownLoadAction">
<result>/JSP/filetransport/filedownload.jsp</result>
<result type="stream">
<param name="contentDisposition">attachment;fileName=${fileName}</param>
</result>
</action>

Struts文件下载的更多相关文章

  1. struts 文件下载

    =============================struts 文件下载  ================================== 步骤一: JSP页面 <a href=& ...

  2. struts 文件下载 annotation 注解版

    [本文简介] 本文将简单介绍使用 struts2 ,通过零配置和 annotation 实现文件下载功能. [文件夹结构] [web.xml有关struts的配置] <filter> &l ...

  3. struts文件下载机制

    Struts2 中使用 type="stream" 的 result 进行下载即可.只用提供一个输入流inputStream,剩下的输出工作struts帮我们做. 例子一: 1.可 ...

  4. Struts文件下载具体解释

    在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码 1.action类 public class FileDownLoadAction extends ActionS ...

  5. Struts文件下载(静态)

    前言:在实际的开发中,我们可能需要动态下载和静态下载, 动态下载:例如我上传了一个文件,你想下载,那就必须动态生成下载链接,因为我服务器一开始是不知道我上传的东西是什么,放在那里, 静态下载:比如一些 ...

  6. struts2中的文件上传,文件下载

    文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...

  7. struts 多文件上传 annotation注解(零配置)+ ajaxfileupload + 异步 版本

    [本文简介] struts 多文件上传.基于”零配置“+"ajaxfileupload" 的一个简单例子. [导入依赖jar包] jquery-1.7.2.js : http:// ...

  8. Struts2 控制文件上传下载

    之前介绍servlet3.0新特性的时候有提到过servlet API提供了一个part类来实现对文件的上传和保存,Struts其实是在其基础上做了进一步的封装,更加简单易用.至于文件下载,Strut ...

  9. Java自学手记——struts2

    struts2框架 struts2是一种基于MVC模式的框架,是在struts1的基础上融合了xwork的功能. struts2框架预处理了一些功能: >请求数据自动封装, >文件上传的功 ...

随机推荐

  1. jQuery插件Flot的介绍

    Flot采用Canvas绘制图形(Web总共就有三种常见方式来绘制图形,不了解的同学请看这篇文章),在数据量非常大的时候,你需要考虑浏览器端的性能问题.顺便提一句,D3是采用SVG来绘制图形的,从我自 ...

  2. Oracle优化:千万级大表逻辑判断的累赘

    insert into pntmall_point_detail(PNTMALL_PNT_ID,PNTMALL_PNT_DT,PNTMALL_VALIDITY,PNTMALL_LASTUPDATEDT ...

  3. 界面编程与视图(View)组件

    一.视图组件与容器组件 Android应用的绝大部分UI组件都放在android.widget包及其子包.android.view包及其子包中,Android应用的所有UI组件都继承了View类. V ...

  4. winform的Textbox设置只读之后ForeColor无效的解决方法

    winform的Textbox设置只读之后ForeColor无效. 通过以下方法就可以解决: 设置为只读之后,把BackColor改一下,然后运行一下窗口,再设置ForeColor就没问题了. tbT ...

  5. spring-dwr注解整合

    注解配置 1.web.xml 只需将DwrServlet换为DwrSpringServlet(包名不同) 2.dwr类 3.applicationContext.xml 4.annotationCon ...

  6. 棒!使用.NET Core构建3D游戏引擎

    原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/ 作者:ERIC MELLINO 翻译:杨晓东(Savorboa ...

  7. [CSS3] 学习笔记-CSS入门基本知识

    1.CSS概述 CSS指层叠样式表 CSS样式表极大的提高了工作效率 1)CSS基础语法: selector{ propery:value } 例1:h1{color:red;font-size:14 ...

  8. Omi原理-Hello Omi

    Hello Omi Omi框架的每个组件都继承自Omi.Component,本篇会去完成Omi的Component的基本锥形,让其能够渲染第一个组件. omi.js实现 var Omi = {}; O ...

  9. Java 文件句柄泄露问题解决小记

    维护 WebIDE 免不了要管理很多的文件, 自从我们线上系统增加了资源回收功能,便一直受一个问题困扰:后台线程解绑目录时偶尔报错,看症状因为是某些文件被占用了,目录不能解绑.但是由于系统中很多地方都 ...

  10. mktime性能问题调查

    一.问题提出 会议中有同学提到使用mktime遇到一些问题: 1) 设置tm_isdst后速度很慢 2) 设置TZ环境变量提速极大 所以想调查下具体情况.   mktime真的这么慢?如果是,为什么? ...